SQL JOIN: WHERE 句と ON 句の違いは何ですか? 質問する

SQL JOIN: WHERE 句と ON 句の違いは何ですか? 質問する

違いは何ですか?それぞれに何を入れるべきですか?

理論を正しく理解していれば、クエリ オプティマイザーは両方を互換的に使用できるはずです。

(注:この質問明示的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 種類の節が同じ意味を持つわけではありません。

おすすめ記事