TIL DAY 40 || [프로그래머스 SQL JOIN - 없어진 기록 찾기]

TK·2021년 4월 18일
0

TIL

목록 보기
46/55

없어진 기록 찾기

-- 코드를 입력하세요
SELECT ANIMAL_OUTS.ANIMAL_ID, ANIMAL_OUTS.NAME
FROM ANIMAL_OUTS LEFT JOIN ANIMAL_INS
ON ANIMAL_OUTS.ANIMAL_ID = ANIMAL_INS.ANIMAL_ID
WHERE ANIMAL_OUTS.ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM ANIMAL_INS)
  • ANIMAL_OUTS 에만 있고, ANIMAL_INS 에는 없는 row 를 반환하면 된다.
  • 그러기 위해서는, ANIMAL_OUTS 를 기준으로 (LEFT) OUTER JOIN 을 한다.
  • 그 다음, WHERE 구에서 ANIMAL_OUTS.ANIMAL_ID 가 ANIMAL_INS.ANIMAL_ID 에 들어있지 않는 경우를 NOT IN (서브쿼리) 를 사용해 조건을 지정해준다.

마지막 WHERE 구를 다음과 같이 변경해도 된다.

-- 코드를 입력하세요
SELECT ANIMAL_OUTS.ANIMAL_ID, ANIMAL_OUTS.NAME
FROM ANIMAL_OUTS LEFT JOIN ANIMAL_INS
ON ANIMAL_OUTS.ANIMAL_ID = ANIMAL_INS.ANIMAL_ID
WHERE ANIMAL_INS.ANIMAL_ID IS NULL;

결과

profile
Backend Developer

0개의 댓글