문제
https://school.programmers.co.kr/learn/courses/30/lessons/59044
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
서브쿼리에 NOT EXISTS 연산자를 이용해 문제를 해결할 수 있었다.
우리가 필요한 컬럼들은 ANIMAL_INS 테이블에 있으므로 메인쿼리에서받아올 수 있도록 해주고 WHERE 절에 NOT EXISTS 연산자를 사용하여 ANIMAL_INS 테이블과ANIMAL_OUTS 테이블의 ANIMAL_ID 상호존재여부를 파악할 수 있도록 쿼리를 작성한 후에 DATETIME 기준으로 정렬하고 LIMIT을 이용하여 상위 3개의 ROW를 가져오면 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작을 조회할 수 있다.
쿼리
SELECT
NAME,
DATETIME
FROM
ANIMAL_INS AS A
WHERE
NOT EXISTS
(SELECT
*
FROM
ANIMAL_OUTS AS B
WHERE
B.ANIMAL_ID = A.ANIMAL_ID
)
ORDER BY
A.DATETIME
LIMIT
3
'프로그래머스-SQL' 카테고리의 다른 글
[프로그래머스-SQL] 프로그래머스 SQL Level4 5월 식품들의 총매출 조회하기 MySQL (0) | 2022.10.07 |
---|---|
[프로그래머스-SQL] 프로그래머스 SQL Level4 보호소에서 중성화한 동물 MySQL (0) | 2022.10.07 |
[프로그래머스-SQL] 프로그래머스 SQL Level3 없어진 기록 찾기 MySQL (0) | 2022.10.07 |
[프로그래머스-SQL] 프로그래머스 SQL Level3 있었는데요 없었습니다 MySQL (0) | 2022.10.07 |
[프로그래머스-SQL] 프로그래머스 SQL Level2 입양 시각 구하기(1) MySQL (0) | 2022.09.15 |