문제의 요구 사항은 입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성하는 것이다.
기간이 가장 길었던 동물 두 마리이므로 일단 정렬을 포함해야 하며 보호 시작 DATE와 보호 끝 DATE가 INS와 OUTS 두 테이블에 나뉘어있으므로 INNER JOIN을 통해 검색할 수 있다.
SELECT T1.ANIMAL_ID, T1.NAME
FROM ANIMAL_INS T1
INNER JOIN ANIMAL_OUTS T2
ON T1.ANIMAL_ID = T2.ANIMAL_ID
ORDER BY (T2.DATETIME - T1.DATETIME) DESC
LIMIT 2
위 SQL문은 LIMIT를 사용하므로 MySQL에서만 사용할 수 있다. 다른 DBMS에서는 서브 쿼리를 활용해야 한다.
URL: https://school.programmers.co.kr/learn/courses/30/lessons/59411