[SQL]失われたレコードの検索(LEFTJOIN,差分)
2250 ワード
△天災人災…あまりにもひどいのではないか…)
養子縁組の記録(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);
この文章はもっと簡潔なクエリーになるかもしれません.Reference
この問題について([SQL]失われたレコードの検索(LEFTJOIN,差分)), 我々は、より多くの情報をここで見つけました https://velog.io/@cyanred9/SQL-없어진-기록-찾기-풀이LEFT-JOIN-차집합テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol