[프로그래머스 SQL] 오랜 기간 보호한 동물(1)

Hoehenflug·2022년 3월 14일
0

프로그래머스

목록 보기
6/13
post-thumbnail
post-custom-banner

SQL 관련 모든 문제들은 MySQL을 기준으로 해결했다.

1. 문제


2. 해결 방법

ANIMAL_INS는 아직 보호소에 있는 동물 테이블, ANIMAL_OUTS는 입양나간 동물들 테이블이다.
입양을 못 간 동물들 중 보호소에 남아있는 동물을 조회해야 하며 ANIMAL_INS의 DATETIME을 기준으로 정렬한다.
모든 행을 조회하는 것이 아니라 3행만 조회한다.
LEFT JOIN을 이용해야 한다. ANIMAL_INS(왼쪽 테이블)을 기준으로 ANIMAL_OUTS(오른쪽 테이블)을 JOIN하며 매치되는 레코드가 오른쪽 테이블에 없으면 NULL을 표시한다.
입양을 못 간 동물들 중 보호소에 남아있는 동물을 조회하므로 ANIMAL_OUT에는 레코드가 없을 것이다. 따라서 O.ANIMAL_ID IS NULL을 넣어 ANIMAL_INS에는 있지만 ANIMAL_OUTS에는 없는 값을 출력한다.

3. 해결!

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

문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/59044

post-custom-banner

0개의 댓글