본문 바로가기
문제풀이/SQL 문제풀이

프로그래머스 / SQL - 없어진 기록 찾기

by yj-data 2025. 10. 12.
천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.

방법 1
SELECT ANIMAL_ID, NAME
FROM ANIMAL_OUTS
MINUS
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS;

방법 2
SELECT ANIMAL_ID, NAME
FROM ANIMAL_OUTS
WHERE ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM ANIMAL_INS);

방법: OUT에는 있는데, IN에는 없는 ID를 OUT_ID 중 찾으면 된다.

 

방법 1의 경우, Oracle 용이라고 함. PostgreSQL은 EXCEPT, MySQL등은 지원하지 않는다고 한다. (MINUS는 차집합 함수)

 

따라서 방법 2의, SELECT 문으로 서브쿼리를 만들어 간단하게 해결한다면 어떤 DBMS에서도 문제가 되지 않는다.