본문 바로가기
SQL/문제풀이

프로그래머스 오랜 기간 보호한 동물(1) 풀이(MySQL)

by wakestand 2019. 9. 7.
반응형

사이트명 : 프로그래머스(Programmers)

문제명 : 오랜 기간 보호한 동물(1)

SQL : MySQL

 

ANIMAL_INS는 아직 보호소에 있는 동물 테이블이고

ANIMAL_OUTS는 입양나간 동물들 테이블인데

 

입양나가지 않고 보호소에 남아있는 동물들만 조회해야 하는데

여기에 ANIMAL_INS의 DATETIME 기준으로 ORDER BY를 걸어야 하고

모든 행을 조회하는 게 아니라 '3행'만 조회해야 한다!!!

 

내 풀이방법은 아래와 같은데

 

먼저 LEFT JOIN과 WHERE 문에 B.ANIMAL_ID IS NULL을 넣어

A에는 있지만 B에는 없는 값만 뽑아내면 총 4행이 나오는데

 

포인트는 ANIMAL_INS 테이블의 DATETIME 순으로

3행만 뽑아와야 한다는 것이다

ORDER BY A.DATETIME 수행 후

LIMIT 3을 넣어줘서 3행만 가져오면 된다

 

마지막으로 프로그래머스에 바로 적용 가능한 코드는 아래와 같다

 

-- 코드를 입력하세요
SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY A.DATETIME
LIMIT 3
반응형

댓글