1

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

2 回答 2

0

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

使用第一种形式只是一个约定:

SELECT * FROM table1 JOIN table2 ON (table1.c1 = table2.c1)
于 2012-09-06T13:02:40.850 回答
0

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

干杯

Select  *
    From    dbo.Person  As  A
    Inner   Join
        dbo.PersonOrder As  B
    On  1       =   1
于 2012-09-06T13:15:42.537 回答