SQL 알고리즘 코드카타

SQL 알고리즘 코드카타 12일차(2) 26.01.10(토)

nom_de_plume 2026. 1. 10. 14:31

부제:

오랜 기간 보호한 동물(1), 레벨 3

 

1. 문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/59044
2. 정답 코드: 

SELECT
    ai.name,
    ai.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 datetime
limit 3


3. 오류 상황:

SELECT
    ao.name,
    ao.datetime
from animal_ins as ai
join animal_outs as ao
    on ai.name = ao.name
where ai.name not in ao.name 
order by datetime

=>  출력 불가
4. 시도 방법:

=> 입양 안된 동물만 출력하기 위해 left join 사용

=> where문 수정

=> limit 사용해서 출력 갯수 제한
5. 최종 문제 해결 방법:

=> ao는 입양간 동물의 테이블이기 때문에 ai테이블의 컬럼들을 불러와야한다.

=> 입양안된 동물만 출력하기 위해 left join 사용

=> left join을 했기 때문에 입양간 동물의 아이디의 값은 비어있기 때문에 NULL 처리

=> 보호한지 제일 오래된 동물 3마리만 출력하고 싶기 때문에 limit 사용