リンク切れしているデータを探すSQL

他のテーブルのデータのIDなどを保持して関連づけしているときに、いつの間にかリンク先テーブルのデータを削除してリンク切れを起こしてしまうことがある。

そこでリンクが切れているデータを探すSQL

aTable
 ├ id
 └ b_id(bTableのリンク先id
bTable
 └ id
という構成のときに、aTableの中からリンク先のbTableに対象となるidのデータが存在しないものを抽出する。
SELECT aTable.id
FROM aTable
LEFT JOIN bTable ON aTable.b_id = bTable.id
WHERE bTable.id IS NULL

aTableとbTableをLeft Joinで結合したときに相手方のidがNULLになってしまうものを抽出すればいい。