아직 입양을 못 간 동물 중,
가장 오래 보호소에 있었던 동물
3마리의
이름과 보호 시작일을 조회하는 SQL문을 작성해주세요.
이때 결과는 보호 시작일 순으로 조회해야 합니다.
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
LIMIT 3;
입양을 못 갔다는 것은 ANIMAL_INS LEFT JOIN ANIMAL_OUTS를 수행했을 때, ANIMAL_OUTS에 대해서 NULL인 값들이 존재한다는 것이다.
그리고 가장 오래 보호소에 있었다면 가장 오래된 날짜를 구해야 하므로 ASC로 작은 값부터 3개를 출력하면 된다.
보호 시작일 순으로 조회하는 것도 제일 먼저 들어온 동물, 즉 가장 오래된 날짜부터 조회하는 것이기 때문에 위에서 썼던 조건 그대로 ORDER BY I.DATETIME을 사용하면 된다.
만약 두 번째로 들어온 동물부터 출력해야 했다면 아마 서브 쿼리를 써야했지 않을까, 하는데 서브 쿼리에서는 LIMIT을 사용하지 못한다고 한다.
나중에 생각해 봐야겠다.