在下面的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)
答案 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