[Programmers] 오랜 기간 보호한 동물(1)
정답
-- ANIMAL_INS: ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE
-- ANIMAL_OUTS: ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME
SELECT I.NAME, I.DATETIME
FROM ANIMAL_INS AS I
WHERE NOT EXISTS (
SELECT 1
FROM ANIMAL_OUTS AS O
WHERE I.ANIMAL_ID = O.ANIMAL_ID
)
ORDER BY DATETIME
LIMIT 3;
✅ Point
- I 에는 있고, O 에는 없는 정보 =>
NOT EXISTS
로 접근 - 보호 기간이 긴 동물 = 보호 시작일이 빠른 동물
- 입양을 가지 못한 동물이 3마리 이상인 경우만 입력으로 주어지므로,
LIMIT 3
으로 가장 오래 보호한 동물 3마리에 대한 row 추출LIMIT 3
은 최대 3개의 row를 가져온다는 의미. 해당 입력 조건이 보장되지 않더라도 동일한 기능 수행!