SQL 이야기
프로그래머스 JOIN (3) - 오랜 기간 보호한 동물(1)
bjgu97
2022. 4. 3. 14:01
반응형
입양을 가지 못한 동물 중 가장 오래 보호소에 있었던 동물 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