SQL/문제풀이

[프로그래머스] 오랜 기간 보호한 동물 (1)

응엉잉 2024. 1. 2. 10:38

 

https://school.programmers.co.kr/learn/courses/30/lessons/59044

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. animal_ins와 animal_outs table을JOIN 해주기

animal_ins를 기준으로 JOIN 하게되면 ins 기록은 있지만 outs 기록은 없는 동물을 찾을 수 있다.

JOIN 결과는 다음과 같다.

입양가지 못한 동물들은 animal_outs 정보가 없으므로 해당 데이터가 빈칸이다.

 

2. outs 정보가 없는 column을 WHERE 조건절 통해 찾아주기

 

3. 보호 시작일 순으로 정렬하기 위해 ORDER BY 사용하기

 

4. 보호한지 오래된 3마리 동물만 보여주기 위해 LIMIT 사용하기

 

5. 원하는 column만 SELECT 하기

 

정답 코드는 다음과 같다.

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