ホームページ >データベース >mysql チュートリアル >SQL JOIN: WHERE と ON: 結合されたデータのフィルタリングにおける主な違いは何ですか?
SQL JOIN: WHERE 句と ON 句について
SQL JOIN をマスターするには、WHERE
句と ON
句を明確に理解する必要があります。 互換性がある場合もありますが、機能は大きく異なります。
WHERE
句: 結合後のフィルタリング
WHERE
句は、結合の 結果 をフィルタリングします。 次の例を考えてみましょう:
<code class="language-sql">SELECT * FROM Orders LEFT JOIN OrderLines ON OrderLines.OrderID = Orders.ID WHERE Orders.ID = 12345;</code>
ここで、WHERE
句は出力をフィルタリングし、Orders.ID
が 12345 である行のみを表示します。これは、 が と LEFT JOIN
からのデータを結合したOrders
後OrderLines
に適用されます。
ON
句: 結合条件定義
ON
句は、結合条件 自体を定義します。 観察してください:
<code class="language-sql">SELECT * FROM Orders LEFT JOIN OrderLines ON OrderLines.OrderID = Orders.ID AND Orders.ID = 12345;</code>
ON
句は、OrderLines.OrderID
が Orders.ID
と一致し、Orders.ID
が 12345 に等しい行のみが結合に含まれることを指定します。 このフィルタリングは、結合プロセス中に行われます。
主要な意味上の区別
WHERE
と ON
は INNER JOIN
と同様の結果をもたらす可能性がありますが、それらの意味論的な役割は異なります。 WHERE
は最終的に結合されたデータセットをフィルター処理し、ON
は結合操作にどの行が含まれるかを決定します。
以上がSQL JOIN: WHERE と ON: 結合されたデータのフィルタリングにおける主な違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。