본문 바로가기

개발자 강화/코딩 테스트

[SQL] 없어진 기록 찾기 - JOIN

OUTS 테이블에 있지만 INS 테이블에 없는 경우를 찾아야 하니까

오른쪽 테이블에만 값이 있어도 JOIN 하고 왼쪽 테이블 값을 NULL로 처리하는

RIGHT OUTER JOIN을 써야함!!

 

헷갈렸던게 SELECT문을 INS 테이블 요소를 고르든 OUTS 테이블 요소를 고르든 상관없을 것이라고 생각했는데,

INS 테이블에는 없는 경우를 고르는거라, OUTS 테이블에 있는 ID랑 NAME을 골라야 제대로 출력이 되더라

 

SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_INS AS I
RIGHT OUTER JOIN ANIMAL_OUTS AS O
ON I.ANIMAL_ID=O.ANIMAL_ID
WHERE I.DATETIME IS NULL