프로그래머스_있었는데요 없었습니다

임정민·2023년 5월 21일

SQL 문제풀이

목록 보기
34/53
post-thumbnail

SQL 공부중 입니다. ✍✍✍

문제

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

풀이

SELECT AI.ANIMAL_ID, AI.NAME
    FROM ANIMAL_INS AI
    INNER JOIN ANIMAL_OUTS AO
    ON AI.ANIMAL_ID = AO.ANIMAL_ID
    WHERE TIMESTAMPDIFF(SECOND,AI.DATETIME,AO.DATETIME) < 0
    ORDER BY AI.DATETIME ASC;

문제에서 입양된 동물 중 입양일이 잘못 입력된 동물이라고 하였기 때문에 먼저 보호,입양 둘 다 이루어진 동물들을 찾기 위해 JOIN을 외래 키 (ANIMAL_ID)로 두 테이블을 연결하였습니다. 그 후 보호 시작일이 입양일보다 빠른 동물들을 구하기 위해 DATETIME 형의 차이를 나타내는TIMESTAMPDIFF() 함수를 사용하였습니다.🐕🐕🐕

다른 풀이에서는 아래와 같이

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

JOIN을 활용하지 않고 WHERE 구문으로 두 테이블 간의 ANIMAL_ID가 같은 값을 찾은 뒤 등호를 통한 DATETIME 비교를 통해 보호일이 더 빠른 값을 구하는 방식을 볼 수 있었습니다.🐨🐨🐨

감사합니다.

profile
https://github.com/min731

0개의 댓글