2つのテーブルがあります。2つのテーブルを結合する前に1つのテーブルをフィルタリングしたいと思います。
顧客テーブル:
╔══════════╦═══════╗
║ Customer ║ State ║
╠══════════╬═══════╣
║ A ║ S ║
║ B ║ V ║
║ C ║ L ║
╚══════════╩═══════╝
エントリーテーブル:
╔══════════╦═══════╦══════════╗
║ Customer ║ Entry ║ Category ║
╠══════════╬═══════╬══════════╣
║ A ║ 5575 ║ D ║
║ A ║ 6532 ║ C ║
║ A ║ 3215 ║ D ║
║ A ║ 5645 ║ M ║
║ B ║ 3331 ║ A ║
║ B ║ 4445 ║ D ║
╚══════════╩═══════╩══════════╝
左結合したいので、Entryテーブルに関連するレコードがあるかどうかに関係なく、Customerテーブルからすべてのレコードを取得します。ただし、結合する前に、エントリテーブルのカテゴリDでフィルタリングしたいと思います。
望ましい結果:
╔══════════╦═══════╦═══════╗
║ Customer ║ State ║ Entry ║
╠══════════╬═══════╬═══════╣
║ A ║ S ║ 5575 ║
║ A ║ S ║ 3215 ║
║ B ║ V ║ 4445 ║
║ C ║ L ║ NULL ║
╚══════════╩═══════╩═══════╝
次のクエリを実行する場合:
SELECT Customer.Customer, Customer.State, Entry.Entry
FROM Customer
LEFT JOIN Entry
ON Customer.Customer=Entry.Customer
WHERE Entry.Category='D'
これにより、最後のレコードが除外されます。
したがって、左側のテーブルのすべての行を、カテゴリDでフィルタリングされたエントリテーブルに結合します。
よろしくお願いします!!