코딩테스트 연습 - 없어진 기록 찾기 | 프로그래머스 (programmers.co.kr)
천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.
JOIN을 얼마나 잘 활용하느냐를 묻는 문제이다.
ANIMAL_INS에는 없고, ANIMAL_OUTS에만 있는 데이터를 찾아달라는 것이다.
따라서, 1번으로 join을 해주는데, inner가 아닌 outer조인을 해줘야 한다.
그럼 어떻게 붙일까.
난 ANIMAL_INS를 Select 문의 from에 썼으므로, right join으로 ANIMAL_OUTS를 붙였다.
그리고 id가 같은녀석들로 붙였으며, 마지막에 where문을 사용하여, ANIMAL_INS.ANIMAL_ID IS NULL 을 조건으로 걸면
outs 테이블에만 있는 녀석들을 찾을 수 있다!
SELECT ao.ANIMAL_ID, ao.NAME FROM ANIMAL_INS ai
right join ANIMAL_OUTS ao
on ao.ANIMAL_ID = ai.ANIMAL_ID
where ai.ANIMAL_ID is null
'SQL > SQL 공부' 카테고리의 다른 글
SQL Join에 대하여 (0) | 2021.05.28 |
---|---|
기초 문법 (0) | 2021.05.28 |