소근소근

[프로그래머스 - 오랜 기간 보호한 동물(2)] MYSQL , DATETIME , STRING 본문

Algorithm

[프로그래머스 - 오랜 기간 보호한 동물(2)] MYSQL , DATETIME , STRING

JJureng 2022. 2. 6. 15:49
728x90
반응형
SMALL

 

SELECT ID,NAME
FROM 
(SELECT (O.DATETIME - I.DATETIME) AS PERIOD , I.ANIMAL_ID , I.NAME
FROM  ANIMAL_INS AS I, ANIMAL_OUTS AS O
WHERE I.ANIMAL_ID = O.ANIMAL_ID
ORDER BY PERIOD DESC) B(PERIOD,ID,NAME)
LIMIT 2;

 

여기서는 두개의 테이블이 주어진다. 

ANIMAL_INS , ANIMAL_OUTS 는 각각 보호소에 들어온 동물 정보, 입양을 간 동물들의 정보가 담겨있다.

보호소에서 가장 오랜 기간 보호한 동물 2마리를 조회해야 한다.

 

두개의 테이블에서 같은 동물의 아이디는 같으므로 

I.ANIMAL_ID = O.ANIMAL_ID 으로 JOIN 한 다음, 

DATETIME을 (OUT-IN) 해서 보호 기간을 구한다.

보호 기간을 내림차순으로 정렬한다.

 

위에서부터 2개의 튜플만 조회하면 되므로 LIMIT을 이용한다.

한번 틀렸었는데, LIMIT을 SELECT와 FROM사이에 썼다가 틀렸었다.

 

LIMIT은 WHERE이나 ORDER BY 뒤에 와야 한다.

728x90
반응형
LIST