문제:

풀이방법:

NULL이 필요한 문제가 아니므로 기본 조인인 INNER JOIN을 사용해도 상관이 없다. 따라서 두 테이블을 INNER JOIN 했다. 그 다음에 보호 기간이 가장 길었다는 것은 O.DATETIME과 I.DATETIME의 차이가 크다는 것이다. 따라서 이 연산을 ORDER BY에다가 DESC 조건을 넣어서 찾도록 한다.

1
2
SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS I, ANIMAL_OUTS O WHERE I.ANIMAL_ID = O.ANIMAL_ID
ORDER BY (O.DATETIME -I.DATETIME) DESC LIMIT 2;
cs

문제링크:

https://programmers.co.kr/learn/courses/30/lessons/59411

문제:

풀이방법:

OUTS에 있는 값의 DATETIME과 INS의 DATETIME의 값 차이를 비교해야 하는 문제이다. 두 테이블에 공통된 값인 ANIMAL_ID으로 INNER JOIN을 한다. 조인을 한 뒤에 IN의 DATETIME이 OUTS의 DATETIME보다 큰 값을 찾아주도록 한다. 

1
2
SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_OUTS O, ANIMAL_INS I WHERE O.ANIMAL_ID=I.ANIMAL_ID AND
I.DATETIME > O.DATETIME ORDER BY I.DATETIME;
cs

문제링크:

https://programmers.co.kr/learn/courses/30/lessons/59043

+ Recent posts