[프로그래머스] SQL 고득점 Kit/JOIN
* [Level 3] 없어진 기록 찾기: JOIN
yyndevv
2022. 10. 10. 22:37
[문제]
천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.
ANIMAL_OUTS에 기록이 있으나 ANIMLA_INS에는 기록이 없으므로 LEFT JOIN 하였을 때 NULL 값 가진 행을 골라내면 된다!
SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_OUTS AS O
LEFT JOIN ANIMAL_INS AS I
ON O.ANIMAL_ID = I.ANIMAL_ID
WHERE I.DATETIME IS NULL
ORDER BY O.ANIMAL_ID
JOIN 종류
- JOIN
- LEFT JOIN
- 왼쪽 테이블을 중심으로 오른쪽의 테이블 매치
- 왼쪽 테이블의 한 개의 레코드에 여러 개의 오른쪽 테이블 레코드가 일치할 경우, 해당 왼쪽 레코드를 여러 번 표시
- 왼쪽은 무조건 표시하고, 매치되는 레코드가 오른쪽에 없으면 NULL을 표시한다.
- RIGHT JOIN: LEFT JOIN과 방향만 반대
- OUTER JOIN : 조건에 부합하지 않는 행까지도 포함시켜 결합하는 것