-- USING OUTER JOIN
SELECT o.ANIMAL_ID, o.NAME
FROM ANIMAL_INS AS i
RIGHT OUTER JOIN ANIMAL_OUTS AS o
ON i.ANIMAL_ID = o.ANIMAL_ID
WHERE i.ANIMAL_ID is null
ORDER BY o.ANIMAL_ID
-- USING NOT EXIST
SELECT o.ANIMAL_ID, o.NAME
FROM ANIMAL_OUTS AS o
WHERE NOT EXISTS (SELECT 1 FROM ANIMAL_INS AS i
WHERE i.ANIMAL_ID = o.ANIMAL_ID)
ORDER BY o.ANIMAL_ID
prompt 이해하기 - OUTS 에는 있지만 INS에는 존재 하지 않는 ID를 찾아 리턴.
ANIMAL_OUTS 테이블에서 ANIMAL_INS에 ID가 없다면 데이터가 유실 된 것이고 RIGHT OUTER JOIN (INS JOIN OUTS) 하였을때 INS에는 없는 ID는 null 결과를 가질것이므로. 조건문에 i.ANIMAL_ID is null 을 넣어주면 된다. OUTS 테이블에 있는 ID를 찾는것이므로, 조회문에 i.ANIMAL_ID, i.NAME 이 아닌 o.ANIMAL_ID, o.NAME 이어야 한다.
'Algorithms in Python > Programmers - SQL ⭐️' 카테고리의 다른 글
대장균의 크기에 따라 분류하기 1 (0) | 2024.09.25 |
---|---|
조건에 맞는 사용자 정보 조회하기 (1) | 2024.09.25 |
있었는데요 없었습니다 (2) | 2024.09.24 |
조건별로 분류하여 주문상태 출력하기 (0) | 2024.09.24 |
오랜 기간 보호한 동물(2) (0) | 2024.09.24 |