違いは何ですか?それぞれに何を入れるべきですか?
理論を正しく理解していれば、クエリ オプティマイザーは両方を互換的に使用できるはずです。
(注:この質問は明示的SQL結合と暗黙的SQL結合答えは関連している(または同じ)かもしれませんが、質問は異なります。
ベストアンサー1
それらは同じものではありません。
次のクエリを検討してください。
SELECT *
FROM Orders
LEFT JOIN OrderLines ON OrderLines.OrderID=Orders.ID
WHERE Orders.ID = 12345
そして
SELECT *
FROM Orders
LEFT JOIN OrderLines ON OrderLines.OrderID=Orders.ID
AND Orders.ID = 12345
最初のものは、注文番号の注文とその明細(ある場合)を返します12345
。
2 番目のものはすべての注文を返しますが、注文12345
にのみ明細が関連付けられます。
を使用するとINNER JOIN
、これらの節は実質的に同等になります。ただし、機能的に同じで、同じ結果を生成するからといって、2 種類の節が同じ意味を持つわけではありません。