ON子句变量顺序 - 优化

时间:2012-09-06 12:59:15

标签: mysql sql performance join

在下面的2个查询中,结果集将是相同的,但我想知道由于ON子句中的比较参数的顺序,速度是否会有任何差异。

在第一个查询中,它匹配table1.c1 = table2.c1,而第二个查询则匹配。

SELECT * FROM table1 JOIN table2 ON (table1.c1 = table2.c1)

或者

SELECT * FROM table1 JOIN table2 ON (table2.c1 = table1.c1)

2 个答案:

答案 0 :(得分:0)

两个查询完全相同,它们之间没有区别。

只是使用第一种形式的惯例:

SELECT * FROM table1 JOIN table2 ON (table1.c1 = table2.c1)

答案 1 :(得分:0)

由于ON子句中的布尔表达式返回TRUE,因此会将记录发送到结果集输出。如果其中一个表返回0记录,即使ON子句返回TRUE,结果集也将为空。因此,如何在ON子句中编写布尔表达式没有区别。像这样意味着交叉加入!

干杯

Select  *
    From    dbo.Person  As  A
    Inner   Join
        dbo.PersonOrder As  B
    On  1       =   1
相关问题