Re:제로부터 시작하는 갓생
[MySQL] 오랜 기간 보호한 동물(1)_Lv.3 본문
문제 https://school.programmers.co.kr/learn/courses/30/lessons/59044
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
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문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다. ※ 입양을 가지 못한 동물이 3마리 이상인 경우만 입력으로 주어집니다.
요구사항
animal_ins 테이블과 animal_outs 테이블을 animal_id 기준으로 left join
OUT 테이블 아직 입양을 못간 동물 animal_id null값 필터링-> where
INS 테이블 동물 이름, 보호 시작일 조회 select
INS 테이블 보호 시작일 순으로 오름차순 정렬 order by
가장 오래 보호소에 있었던 동물 3마리 출력 limit
풀이방법
-- 코드를 입력하세요
SELECT ai.name as 'NAME',
ai.datetime as 'DATETIME'
from animal_ins as ai
left join animal_outs as ao
on ai.animal_id = ao.animal_id
where ao.animal_id is null
order by 2
limit 3
배운점
서브쿼리 사용하지 않고 LEFT JOIN만으로 가능한 문제풀기
컬럼명 쓸때 따옴표를 잘못 쓰면 문자열로 인식 할 수 있으니 주의
'CodeKata > SQL' 카테고리의 다른 글
[MySQL] 상품 별 오프라인 매출 구하기_Lv.3 (0) | 2025.01.21 |
---|---|
[MySQL] 카테고리 별 도서 판매량 집계하기_Lv.3 (0) | 2025.01.17 |
[MySQL] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기_Lv.2 (0) | 2025.01.09 |
[MySQL] 인기있는 아이스크림_Lv.2 (0) | 2025.01.07 |
[MySQL] 12세 이하인 여자 환자 목록 출력하기_Lv.2 (1) | 2025.01.05 |