如果在连接中完成过滤或在连接后使用where子句,则哪个查询更快

时间:2015-01-19 12:59:00

标签: mysql sql

比较这两个查询:....

查询1

SELECT      *
FROM        TableA a
INNER JOIN  TableXRef x
        ON  a.ID = x.TableAID
INNER JOIN  TableB b
        ON  x.TableBID = b.ID
WHERE       a.ID = 1            /* <-- Filter here? */

查询2

SELECT      *
FROM        TableA a
INNER JOIN  TableXRef x
        ON  a.ID = x.TableAID
        AND a.ID = 1            /* <-- Or filter here? */
INNER JOIN  TableB b
        ON  x.TableBID = b.ID

1 个答案:

答案 0 :(得分:0)

无关紧要,两种情况都应该执行同样的事情。

我个人更喜欢只在ON子句中使用连接条件,在WHERE子句中使用“过滤”。