[SQL] 없어진 기록 찾기

이말감·2022년 2월 3일
0

SQL

목록 보기
8/14

문제

링크

코드

SELECT O.ANIMAL_ID, O.NAME 
FROM ANIMAL_OUTS O
LEFT OUTER JOIN ANIMAL_INS I 
ON O.ANIMAL_ID = I.ANIMAL_ID
WHERE I.ANIMAL_ID IS NULL
ORDER BY O.ANIMAL_ID;

풀이

입양을 간 기록은 남아있기 때문에 ANIMAL_OUTS 테이블이 유실되지 않았으므로 기준으로 삼는다.
입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물
=> OUTS 테이블과 INS 테이블의 LEFT OUTER JOIN

여기서 내가

LEFT OUTER JOIN ANIMAL_INS I 
ON O.ANIMAL_ID = I.ANIMAL_ID

이 부분을 ANIMAL_ID가 아닌 NAME 으로 적었었다. 올바르지 않은 값이 나오는데,
사실 정확하게 왜 안되는지 이해하진 못했다 ㅠㅠ
대강 이해한 바는 NAME은 이름이 같은 동물도 있고, 이름이 없는 동물도 있기 때문에
모든 동물이 각자 고유한 아이디를 가지고 있기 때문에 이 아이디를 이용해야 한다고 이해했다.

profile
전 척척학사지만 말하는 감자에요

0개의 댓글