[SQL]失われたレコードの検索(LEFTJOIN,差分)



△天災人災…あまりにもひどいのではないか…)
養子縁組の記録(ANIMAL OUTS)がありますが、保護所記録(ANIMAL INS)に入っていないIDと名前を見つける必要があります.
実は私が考えた答えはLEFT JOIN
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS AS OUTS
    LEFT JOIN ANIMAL_INS AS INS
    ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.DATETIME IS NULL
と書いてありましたが、
INSテーブルにも特定のIDが紛失した場合、LEFTJOINを作るのは難しいかもしれません.
(まず、与えられた例では、このようにして解く.)
解題を見ると、もともと差集概念で解題されていたが、もっと簡潔になったようだ.
AのIDがBテーブルのIDにない場合、
SELECT A의 ID from A테이블 WHERE A의 ID NOT IN (SELET B의 ID from B테이블)
これでNOT INの条件で解けばいい
ここでIDはANIMAL OUTSにあり、INSにないものを見つけなければならないからです.
SELECT ANIMAL_ID, NAME FROM ANIMAL_OUTS
WHERE ANIMAL_ID NOT IN
    (SELECT ANIMAL_ID FROM ANIMAL_INS);
この文章はもっと簡潔なクエリーになるかもしれません.