본문 바로가기
코딩테스트/SQL

[프로그래머스] JOIN 〉Lv3. 있었는데요 없었습니다

by imsha 2021. 10. 22.

문제 설명

 


예시

 


풀이 방법

관리자의 실수로 일부 동물의 입양일이 잘못 입력되었다고 합니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하여 결과는 보호 시작일이 빠른 순으로 정렬하는 문제입니다. 이 문제도 이 전 문제와 마찬가지로 ANIMAL_INS와 ANIMAL_OUTS의 동물의 아이디가 같은 것 끼리 매치하여 JOIN 합니다. 그리고 WHERE절에서 INS의 보호 시작일(DATETIME)이 OUTS의 입양일(DATETIME)보다 더 클 때를 조건으로 하여 보호 시작일보다 입양일이 더 빠른 동물들을 추출합니다. 다음으로 보호 시작일인 INS의 DATETIME이 빠른 순으로 정렬되도록 ORDER BY에 입력해 줍니다. 이때 SELECT절에는 INS 테이블의 동물 아이디와 이름이거나 OUTS테이블의 동물 아이디와 이름으로 설정하면 됩니다. 즉, 둘 다 같은 결과를 나타내며 둘 다 정답으로 처리됩니다.

 


문제 풀이

SELECT INS.ANIMAL_ID, INS.NAME
FROM ANIMAL_INS INS LEFT JOIN ANIMAL_OUTS OUTS 
    ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE INS.DATETIME > OUTS.DATETIME
ORDER BY INS.DATETIME

 


실행 결과

 

댓글