2 番目のテーブルに対応するレコードがないテーブルからレコードを選択するための SQL ステートメントの記述方法。
例: と の 2 つのテーブルがa
ありb
ます。
a (id, first, second, third)
b (id, whatever)
a
レコードなしで、table からすべてのデータを選択する必要がありますa.id = b.id
。そのレコードは選択されるべきではありません。
SELECT * FROM a WHERE id NOT IN (SELECT id FROM b)
EXISTS サブクエリの場合:
SELECT *
FROM a
WHERE NOT EXISTS (SELECT 1 FROM b WHERE b.id=a.id)
サブクエリなし:
SELECT *
FROM a
LEFT JOIN b ON b.id=a.id
WHERE b.id is null
GROUP BY a.id
select * from a where a.id not in (select distinct id from b)