今回はSQLでAテーブルに存在して、Bテーブルには存在しないデータを抽出する方法を2通り紹介したいと思います。
OUTER JOIN(外部結合)を使う
1つ目は、OUTER JOIN を使います。
JOIN したデータを、WHERE でBテーブルに存在しないデータを残します。
SELECT
*
FROM
Aテーブル
LEFT OUTER JOIN
Bテーブル
ON
Aテーブル.キー = Bテーブル.キー
WHERE
Bテーブル.キー IS NULL
NOT EXISTSを使う
2つ目は、NOT EXISTS を使います。
AテーブルからBテーブルに存在するデータを落とします。
SELECT
*
FROM
Aテーブル
WHERE
NOT EXISTS (
SELECT
*
FROM
Bテーブル
WHERE
Aテーブル.キー = Bテーブル.キー
)
コメント