Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags more
Archives
Today
Total
관리 메뉴

luke

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

DB/프로그래머스(MySQL)

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

luke-king 2025. 12. 15. 23:29

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

풀이.


SELECT ai.NAME, ai.DATETIME
FROM ANIMAL_INS AS ai
LEFT JOIN ANIMAL_OUTS AS ao
on ai.ANIMAL_ID = ao.ANIMAL_ID
WHERE ao.DATETIME IS NULL
ORDER BY DATETIME
LIMIT 3;

이번 문제는 프로그래머스 "오랜 기간 보호한 동물(1)" MySQL 문제다.

문제 접근은 ANIMAL_INS 동물 보호소에 들어온 동물들 ANIMAL_OUTS은 입양 보낸 동물들의 테이블이 있다.

여기서 입양 가지 못한 동물들을 구하는데 제일 일찍 보호소에 들어온 동물 3마리를 출력하는 거다.

그럼 바로 풀이 해보겠다.

 

1. 출력해주기 위한 값인 NAME. DATETIME을 넣어 준다.

 

2. ANIMAL_INS 테이블을 기준으로 ANIMAL_OUTS 테이블을 LETF JOIN 해준다.

이유는 각 테이블의 ANIMAL_ID값이 공통으로 있으며 ANIMAL_INS테이블의 ANIMAL_ID 값과 일치한 값이 없다면

NULL로 표기되기 때문이다.

 

3. 그럼 NULL로 표기된 값들 즉 ANIMAL_OUTS테이블의 DATETIME 값이 NULL인 값을 조건으로 걸어 준다.

 

4.  마지막으로 DATETIME값을 오름 차순으로 정렬해준 다음 상위 3개를 출력하기 위해 LIMIT 3을 해주면 끝이다.