「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > SQLの左翼事前フィルターテーブルのガイド

SQLの左翼事前フィルターテーブルのガイド

2025-04-21に投稿されました
ブラウズ:770

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

SQL左結合、事前フィルターテーブルデータ

]を効率的に実行する

複数のテーブルを処理するときは、通常、テーブルの1つを接合する前にフィルタリングする必要があります。この例には、顧客テーブルとエントリテーブルの2つのテーブルが含まれます。

目標は、これら2つのテーブル間で左結合を実行する前に、特定のカテゴリ「D」に基づいてエントリテーブルをフィルタリングすることです。予想される結果は次のとおりです。顧客テーブルのすべてのレコードは、エントリテーブルに関連するレコードがあるかどうかに関係なく取得されます。同時に、エントリテーブルのカテゴリ基準を満たさないレコードは除外されます。

次のSQLクエリはこれを達成する方法を示しています:

SELECT c.Customer, c.State, e.Entry
FROM Customer c
LEFT JOIN Entry e
   ON c.Customer=e.Customer
   AND e.Category='D'

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

サンプルテーブル

]
客户表 (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        ║
╚══════════╩═══════╩══════════╝

結果

╔══════════╦═══════╦═══════╗
║ Customer ║ State ║ Entry ║
╠══════════╬═══════╬═══════╣
║ A        ║ S     ║  5575 ║
║ A        ║ S     ║  3215 ║
║ B        ║ V     ║  4445 ║
║ C        ║ L     ║  NULL ║
╚══════════╩═══════╩═══════╝

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

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3