こんにちは。ぽこです。
今回はSQLでAテーブルに存在して、Bテーブルには存在しないデータの抽出方法を2通り紹介したいと思います。
OUTER JOIN(外部結合)を使う
OUTER JOINを使い、WHEREで、Bテーブルに存在しないデータを落とします。
1 2 3 4 5 6 7 8 |
SELECT * FROM Aテーブル LEFT OUTER JOIN Bテーブル ON Aテーブル.キー = Bテーブル.キー WHERE Bテーブル.キー IS NULL |
NOT EXISTSを使う
NOT EXISTSを使い、AテーブルからBテーブルに存在するデータを落とします。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SELECT * FROM Aテーブル WHERE NOT EXISTS ( SELECT * FROM Bテーブル WHERE Aテーブル.キー = Bテーブル.キー ) |