ホームページ > データベース > mysql チュートリアル > SQL の左結合の前にテーブルをフィルタリングする方法

SQL の左結合の前にテーブルをフィルタリングする方法

Patricia Arquette
リリース: 2025-01-14 13:11:47
オリジナル
196 人が閲覧しました

How to Filter a Table Before a Left Join in SQL?

左結合の前にテーブルをフィルタリングします

SQL では、結合テーブルは複数のデータ ソースからのデータを結合するための強力なツールです。ただし、結合操作を実行する前にテーブルの 1 つをフィ​​ルタリングする必要がある場合があります。

Customer と Entry という 2 つのテーブルがあるとします。 Entries テーブルに対応するエントリがあるかどうかに関係なく、Customers テーブル内のすべてのレコードを取得しますが、Entries テーブルにカテゴリ「D」を持つ顧客のみを取得したいとします。

単純な左結合クエリは次のようになります:

<code class="language-sql">SELECT Customer.Customer, Customer.State, Entry.Entry
FROM Customer
LEFT JOIN Entry
ON Customer.Customer = Entry.Customer
WHERE Entry.Category = 'D'</code>
ログイン後にコピー

ただし、このクエリでは、カテゴリ「D」のエントリがないため、ID「C」の顧客は除外されます。すべての顧客レコードが確実に含まれるようにするには、フィルタを結合条件に移動します:

<code class="language-sql">SELECT c.Customer, c.State, e.Entry
FROM Customer c
LEFT JOIN Entry e
ON c.Customer = e.Customer
AND e.Category = 'D'</code>
ログイン後にコピー

結合条件内にフィルターを配置すると、結合を実行する前にエントリ テーブルを効果的にフィルターできます。これにより、エントリ テーブルに一致するエントリがあるかどうかに関係なく、結果にはカテゴリ「D」のエントリのみを含めたまま、すべての顧客を取得できます。

このソリューションは、結合結果に含まれるデータを制御する柔軟な方法を提供し、より正確で最適化されたデータ操作を実行できるようにします。

以上がSQL の左結合の前にテーブルをフィルタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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