SQL/프로그래머스
[JOIN] 없어진 기록 찾기
소금깨
2022. 5. 21. 22:50
1 문제 설명
2. 문제 예시
3. 풀이 과정
- 입양을 간 기록은 있는데(ANIMAL_OUTS) 입양을 온 기록은 없는(ANIMAL_INS) 동물의 ID와 이름
=> ANIMAL_OUTS를 기준으로 ANIMAL_INS 테이블을 LEFT JOIN 한다
=> LEFT JOIN하게 될 경우, 왼쪽에 오는 테이블을 기준으로 오른쪽에 오는 테이블과 비교하여 조건에 맞는 값이 있으면
JOIN하여 가져오고, 값이 없으면 NULL 값을 표시한다.
=> 입양 온 기록이 없는 동물의 ID와 이름을 찾아달라고 했으니, INS.ANIMAL_ID가 NULL인 값을 WHERE절을 활용 해 조건을 걸어주자
=> ID 순으로 정렬하라 했으니 ORDER BY ANIMAL_ID
4. 정답
SELECT
A.ANIMAL_ID, A.NAME
FROM ANIMAL_OUTS A
LEFT JOIN ANIMAL_INS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY 1;