반응형
입양을 가지 못한 동물 중 가장 오래 보호소에 있었던 동물 3마리를 구해야 한다.
조건을 하나씩 살펴보면..
1) 입양을 가지 못한 동물을 구한다. 즉, ANIMAL_INS에는 있지만 ANIMAL_OUTS에는 없는 동물을 구해야 한다.
SELECT I.NAME, I.DATETIME
FROM ANIMAL_INS I LEFT OUTER JOIN ANIMAL_OUTS O
ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE O.ANIMAL_ID IS NULL -- ANIMAL_OUTS에는 없는(NULL) 동물
2) 가장 오래 보호소에 있었던 동물 3마리, 즉 보호 시작일이 빠른 동물 3마리를 구해야 한다. 따라서, 보호 시작일로 정렬을 한다.
SELECT I.NAME, I.DATETIME
FROM ANIMAL_INS I LEFT OUTER JOIN ANIMAL_OUTS O
ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE O.ANIMAL_ID IS NULL -- ANIMAL_OUTS에는 없는(NULL) 동물
ORDER BY I.DATETIME
3) 상위 3마리를 구한다. 이때, LIMIT를 사용한다.
SELECT I.NAME, I.DATETIME
FROM ANIMAL_INS I LEFT OUTER JOIN ANIMAL_OUTS O
ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE O.ANIMAL_ID IS NULL -- ANIMAL_OUTS에는 없는(NULL) 동물
ORDER BY I.DATETIME
LIMIT 3
'SQL 이야기' 카테고리의 다른 글
프로그래머스 SUM,MAX,MIN (1) - 중복 제거하기 (0) | 2022.04.05 |
---|---|
프로그래머스 SELECT - 상위 n개 레코드 (0) | 2022.04.04 |
프로그래머스 JOIN (2) - 있었는데요 없었습니다 (0) | 2022.04.03 |
프로그래머스 JOIN (1) - 없어진 기록 찾기 (0) | 2022.04.03 |
JOIN 기초 개념 및 예제 (0) | 2022.04.03 |
댓글