Road to Data Scientist

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

코딩 테스트/SQL

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

ShazelP 2025. 11. 22. 23:12

오랜 기간 보호한 동물(1)

 

ANIMAL_INS 테이블 

 

ANIMAL_OUTS 테이블

 

문제

아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다.

정답예시

코드

SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A
LEFT JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.DATETIME IS NULL
ORDER BY A.DATETIME LIMIT 3;

 

설명

1. 보호소에 들어온 동물 기준으로 입양을 가지 못한 아이들을 찾아야 하기 때문에, ANIMAL_INS (A) 기준으로 ANIMAL_OUTS (B) 와 LEFT JOIN

2. 외래키 ANIMAL_ID 로 연결 : ON A.ANIMAL_ID = B.ANIMAL_ID

3. 연결된 결과 중 입양을 가지 못했다면 B.DATETIME이 존재하지 않을 것이므로 조건 걸어주기 : WHERE B.DATETIME IS NULL

4. 보호 시작일 순(오래된 순)으로 조회해야 하므로 : ORDER BY A.DATETIME

5. 3마리 조회 : LIMIT 3

출처

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

 

프로그래머스

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

programmers.co.kr