동물 보호소에 있는 동물의 정보가 담긴 animal_ins 테이블과 입양된 동물 정보가 담긴 animal_outs 테이블이 있습니다.
입양을 간 동물 중에서
보호기간이 가장 긴 동물
두 마리의
아이디와 이름을
보호기간이 긴 순으로 출력하는 문제입니다.
프로그래머스 코드
우선 조회할 아이디와 이름 컬럼을 SELECT문 뒤에 작성합니다.
조회할 컬럼이 담긴 테이블을 작성하는데 입양기간과 보호 시작일이 필요하기 때문에
FROM 뒤에 animal_ins 테이블을 작성하고
animal_outs를 JOIN 합니다.
이 두 테이블을 연결해줄 컬럼을 비교하기 위해
ON 뒤에 각 공통인 컬럼(외래키)을 비교해줍니다.
보호기간이 가장 오래되면서 내림차순 정렬을 위해
ORDER BY를 이용하여 정렬하게 하고 DATEDIFF 함수를 이용하여 입양일에서 보호 시작일을 뺀 값을 DESC를 이용해 내림차순 정렬했습니다.
DATEDIFF (날짜1, 날짜2) = 날짜1 - 날짜2
두 마리만 출력하기 위해 LIMIT 2를 했습니다.
-- 코드를 입력하세요
SELECT
ai.animal_id,
ai.name
FROM animal_ins ai
JOIN animal_outs ao
ON ai.animal_id = ao.animal_id
ORDER BY DATEDIFF (ao.datetime, ai.datetime) DESC
LIMIT 2;