ホームページ > データベース > mysql チュートリアル > SQL で事前にフィルターされたテーブルとの左結合を実行するにはどうすればよいですか?

SQL で事前にフィルターされたテーブルとの左結合を実行するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-14 13:31:46
オリジナル
743 人が閲覧しました

How to Perform a Left Join with a Pre-Filtered Table in SQL?

SQL 左結合とテーブル データの事前フィルタリングを効率的に実行します

複数のテーブルを操作する場合、多くの場合、テーブルを結合する前にテーブルの 1 つをフィ​​ルタリングする必要があります。この例には、Customer と Entry の 2 つのテーブルが含まれます。

目的は、これら 2 つのテーブル間で左結合を実行する前に、特定のカテゴリ「D」に基づいてエントリ テーブルをフィルタリングすることです。期待される結果は、エントリ テーブルに関連するレコードが存在するかどうかに関係なく、customer テーブル内のすべてのレコードを取得し、同時にカテゴリ条件を満たさないエントリ テーブル内のレコードを除外することです。

次の SQL クエリは、これを実現する方法を示しています。

<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>
ログイン後にコピー

WHERE フィルター条件を JOIN 条件に移動することで、結合前にエントリー テーブルにカテゴリー フィルターを適用できます。これにより、カテゴリ基準を満たすエントリ レコードのみが結合結果に含まれるようになります。

テーブルの例

<code>客户表 (Customer):

╔══════════╦═══════╗
║ Customer ║ State ║
╠══════════╬═══════╣
║ A        ║ S     ║
║ B        ║ V     ║
║ C        ║ L     ║
╚══════════╩═══════╝

条目表 (Entry):

╔══════════╦═══════╦══════════╗
║ Customer ║ Entry ║ Category ║
╠══════════╬═══════╬══════════╣
║ A        ║  5575 ║ D        ║
║ A        ║  6532 ║ C        ║
║ A        ║  3215 ║ D        ║
║ A        ║  5645 ║ M        ║
║ B        ║  3331 ║ A        ║
║ B        ║  4445 ║ D        ║
╚══════════╩═══════╩══════════╝</code>
ログイン後にコピー

結果

<code>╔══════════╦═══════╦═══════╗
║ Customer ║ State ║ Entry ║
╠══════════╬═══════╬═══════╣
║ A        ║ S     ║  5575 ║
║ A        ║ S     ║  3215 ║
║ B        ║ V     ║  4445 ║
║ C        ║ L     ║  NULL ║
╚══════════╩═══════╩═══════╝</code>
ログイン後にコピー

要約すると、JOIN 条件で AND 句を使用すると、テーブルを結合する前にフィルタリングできるため、指定された条件に基づいてデータをより正確に取得できます。

以上がSQL で事前にフィルターされたテーブルとの左結合を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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