1

以下の 2 つのクエリでは、結果セットは同じになりますが、ON 句の比較引数の順序が原因で速度に違いがあるかどうか疑問に思っていました。

最初のクエリでは に一致table1.c1 = table2.c1し、2 番目のクエリではその逆です。

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

または

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

2 に答える 2

0

ON句内のブール式がTRUEを返すため、レコードが結果セットの出力に送信されます。テーブルの1つが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 に答える
0

2 つのクエリは厳密に同じであり、違いはありません。

最初の形式を使用するのは単なる慣習です:

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