Algorithm/프로그래머스 SQL
[프로그래머스] 없어진 기록 찾기
p8labs
2021. 9. 28. 11:09
728x90
반응형
문제

분석
A(AINMAL_INS) 이고 B(ANIMAL_OUTS) 일때
단순하게 A 테이블에는 없는데 B 테이블에 있는 데이터를 조회 하는 것이다.
LEFT OUTER JOIN 을 써야 된다.
이유는 LEFT JOIN 을 쓰면 매칭되는 데이터만 나오기 때문에 없는걸 구할수가 없다.
LEFT OUTER JOIN을 쓰게 되면 매칭이 안되는것도 나오기 때문에 조건을 걸어서 원하는 데이터를 뽑으면된다.
아래 그림에서 ANIMAL_INS 의 데이터가 NULL 인걸 뽑으면 된다.

구현
SELECT
OUTS.ANIMAL_ID, OUTS.NAME
FROM
ANIMAL_OUTS OUTS LEFT OUTER JOIN ANIMAL_INS INS ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NULL
ORDER BY OUTS.ANIMAL_ID
728x90
반응형