ホームページ > データベース > mysql チュートリアル > SQL JOIN: WHERE 節と ON 節: 違いは何ですか?

SQL JOIN: WHERE 節と ON 節: 違いは何ですか?

Susan Sarandon
リリース: 2025-01-23 02:56:10
オリジナル
478 人が閲覧しました

SQL JOIN: WHERE vs. ON Clause: What's the Difference?

SQL JOIN: WHERE 句と ON 句の違いの詳細な説明

SQL では、結合操作 (JOIN) が複数のテーブルのデータを結合する際に重要な役割を果たします。 WHERE 句と ON 句はどちらも結合条件を指定するために使用されますが、その機能はまったく異なります。この違いを理解することは、効率的で正確なクエリを作成するために重要です。

WHERE 句は主に、結合操作の完了後にデータをフィルタリングするために使用されます。結果セット全体に条件を適用し、指定された条件を満たす行のみを返します。たとえば、次のクエリは、注文 ID が 12345 であるすべての注文とその関連品目を取得します:

<code class="language-sql">SELECT *
FROM Orders o
JOIN OrderLines ol ON o.OrderID = ol.OrderID
WHERE o.ID = 12345;</code>
ログイン後にコピー

対照的に、ON 節は JOIN 文法の不可欠な部分です。結合テーブルから行を結合するための等価条件を指定します。 ON 句を使用すると、特定の列または式に基づいて結合行を制限できます。たとえば、次のクエリは、ID 12345 の注文とそれに関連する品目のみを返します:

<code class="language-sql">SELECT *
FROM Orders o
JOIN OrderLines ol ON o.OrderID = ol.OrderID
AND o.ID = 12345;</code>
ログイン後にコピー

WHERE 句と ON 句の主な違いは、そのスコープです。 WHERE 句は結合の結果セットに作用し、ON 句は各テーブルのどの行が結合に参加するかを決定します。この区別は、WHERE 句を使用して指定された条件を満たさない行を除外できる外部結合で特に重要です。

通常、クエリ オプティマイザーは WHERE 句と ON 句を同じように扱います。ただし、場合によっては、適切な句を使用するとクエリのパフォーマンスが向上することがあります。たとえば、フィルターを WHERE 句から ON 句に移動すると、オプティマイザが不要な行比較を排除できるため、より効率的な実行プランが得られる可能性があります。

SQL クエリの効率を最大化するには、WHERE 句と ON 句の違いを理解することが重要です。各句を賢く適用することで、データ取得を最適化し、より高い効率と精度で望ましい結果を得ることができます。

以上がSQL JOIN: WHERE 節と ON 節: 違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート