728x90
반응형
SMALL
📌 문제 정보
- 출처: 문제 링크
- 난이도: ⭐
- 문제 유형: JOIN
- 사용 언어: SQL
🔍 문제 설명
`ANIMAL_INS` 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. `ANIMAL_INS` 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
`ANIMAL_OUTS` 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. ANIMAL_OUTS 테이블의 ANIMAL_ID는 ANIMAL_INS의 ANIMAL_ID의 외래 키입니다.
아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다.
💡 풀이 노트
입양 못 간 동물이란?
ANIMAL_INS 테이블에는 존재하지만,
ANIMAL_OUTS 테이블에는 존재하지 않는 동물 ID
즉, 입소는 했지만 아직 출소 기록이 없는 동물들을 의미
WHERE ANIMAL_ID NOT IN (
SELECT ANIMAL_ID
FROM ANIMAL_OUTS
)
- 입양된 동물들의 ID를 제외
`ANIMAL_OUTS` 의 입양된 동물 ID
| ANIMAL_ID |
| A354597 |
| A373687 |
| A368930 |
🚀 코드 (Java)
SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A
WHERE ANIMAL_ID NOT IN (
SELECT ANIMAL_ID
FROM ANIMAL_OUTS
)
ORDER BY A.DATETIME
LIMIT 3
🖥 실행 결과
출력
NAME DATETIME
Shelly 2015-01-29 15:01:00
Jackie 2016-01-03 16:25:00
Benji 2016-04-19 13:28:00
📌 깃허브 코드 저장소: https://github.com/glorypang/CodingTest
728x90
반응형
LIST