Minemalize

新米エンジニア奮闘記

SQLで、情報が片方のテーブルにあって、片方のテーブルにないレコードを取り出す

LEFT JOIN で IS NULL を使ったら思ったように情報を取れなかった

連結のされ方によっては、下記の書き方だと両方あるレコードも引っ張ってきちゃうみたい。

SELECT ta.hoge as ahoge, tb.hoge as bhoge
FROM table_a ta
LEFT JOIN table_b tb
ON ta.hoge = tb.hoge
AND tb.hoge is NULL

NOT INをつかう

下記のようにしたらちゃんと絞込ができました。

SELECT ta.hoge
FROM table_a ta
WHERE ta.hoge NOT IN(
SELECT tb.hoge
FROM table_b tb
)