日期:2014-05-17  浏览次数:20515 次

多表关联查询,哪种速度快?
假设比较复杂的多个表关联查询。每个表都是多个表关联的,比如

SELECT  xx FROM 
(SELECT XX FROM A INNER JOIN B ON XX=XX) AS A 
INNER JOIN 
(SELECT XX FRROM C LEFT OUTER JION D ON XX=XX) AS B
ON XX=XX
……

这样的查询。

假如有个条件,是这些子表都必须满足的。把这个条件放在外面快,还是放在子表里面快?

放在外面就是如下的语句

SELECT XX FROM (select ……) AS A INNER JON (select ……) AS B ON XX=XX WHERE XX 


放在里面就是

SELECT XX FROM (select ……WHERE XX) AS A INNER JON (select ……WHERE XX) AS B ON XX=XX 


哪个快?我觉得应该是第二个。

------解决方案--------------------
条件应该放在子表里面,这样比较快..
------解决方案--------------------
经实际测试,速度没有差异.