Study/SQL
[프로그래머스 SQL] 오랜 기간 보호한 동물(1)
delay100
2024. 1. 15. 14:07
728x90
반응형
SMALL
코딩테스트 연습 > JOIN > 오랜 기간 보호한 동물(1)

난이도: Lv.3
언어: MySQL
https://school.programmers.co.kr/learn/courses/30/lessons/59044
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
실패
SELECT a.NAME, a.DATETIME
FROM ANIMAL_INS a
JOIN ANIMAL_OUTS b ON a.ANIMAL_ID != b.ANIMAL_ID
GROUP BY a.ANIMAL_ID
ORDER BY a.DATETIME
LIMIT 3
실패이유1.
JOIN을 할 때는 두 테이블의 조건을 기재하고, 테이블을 연결을 해야하는데 지금 코드는 연결을 기재하고 있지 않습니다.
* chatGPT 참고
SQL 쿼리에서 JOIN 절이 올바르게 작성되지 않은 것 같습니다. JOIN 절은 일반적으로 특정 조건에 따라 두 테이블을 연결하는 역할을 합니다. 여기서는 입양된 동물과 보호소에 있는 동물을 연결해야 합니다.
제공한 쿼리에서는 JOIN의 조건이 a.ANIMAL_ID != b.ANIMAL_ID로 되어 있습니다. 이는 ANIMAL_ID가 서로 다른 경우에 조인되도록 설정되어 있습니다. 그러나 일반적으로 JOIN은 두 테이블 간에 일치하는 행을 찾는 데 사용됩니다.
성공
SELECT a.NAME, a.DATETIME
FROM ANIMAL_INS a
LEFT JOIN ANIMAL_OUTS b ON a.ANIMAL_ID = b.ANIMAL_ID
WHERE 1=1
AND b.ANIMAL_ID IS NULL
GROUP BY a.ANIMAL_ID
ORDER BY a.DATETIME
LIMIT 3
LEFT JOIN을 해준 후 JOIN된 테이블에서 아래와 같이 비어있는 ANIMAL_ID(ANIMAL_OUTS) 값을 확인해 출력하면 됩니다.

*참고 chatGPT
'실패' 부분에 기재했습니다.
코드에 질문이 있으시면 댓글을 달아주세요. 최대한 빠른 시일 내에 답변해드리겠습니다.
봐주셔서 감사합니다.
728x90
반응형
LIST