Study/SQL

[프로그래머스 SQL] 있었는데요 없었습니다

delay100 2024. 1. 15. 15:00
728x90
반응형
SMALL

코딩테스트 연습 > JOIN > 있었는데요 없었습니다

난이도: Lv.3 

언어: MySQL

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

실패

없습니다.

 

성공

SELECT a.ANIMAL_ID, a.NAME
FROM ANIMAL_INS a
    JOIN ANIMAL_OUTS b ON a.ANIMAL_ID = b.ANIMAL_ID
WHERE 1=1
AND b.ANIMAL_ID IS NOT NULL
AND (
    (
        DATEDIFF(b.DATETIME, a.DATETIME) = 0
        AND TIMEDIFF(b.DATETIME, a.DATETIME) < 0
    )
    OR
    (
        DATEDIFF(b.DATETIME, a.DATETIME) < 0 
    )
)
ORDER BY a.DATETIME

보호시작일이 입양날짜와 같은 경우에는 TIMEDIFF를 이용해 시간을 추가적으로 비교하고,

보호시작일보다 입양날짜가 빠른 경우는 DATEDIFF만 이용해 날짜를 비교해 출력하면 되는 간단한 문제였습니다.

코드에서 IS NOT NULL을 삭제해도 정답처리 됩니다.

 

*참고 chatGPT

없습니다.


코드에 질문이 있으시면 댓글을 달아주세요. 최대한 빠른 시일 내에 답변해드리겠습니다. 

봐주셔서 감사합니다.

728x90
반응형
LIST