[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를 가져온다는 의미. 해당 입력 조건이 보장되지 않더라도 동일한 기능 수행!