SQL 알고리즘 코드카타

SQL 알고리즘 코드카타 17일차(3) 26.01.15(목)

nom_de_plume 2026. 1. 15. 10:40

부제:

없어진 기록 찾기, 레벨 4

 

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

=> not exists 문법 사용

SELECT
    animal_id,
    name
from animal_outs as ao
where not exists (
    select 1
    from animal_ins as ai
    where ai.animal_id = ao.animal_id
)
order by animal_id

=> left join 사용

SELECT
    ao.animal_id,
    ao.name
from animal_outs as ao
left join animal_ins as ai
    on ai.animal_id = ao.animal_id
where ai.animal_id is null
order by animal_id


3. 오류 상황:

SELECT
    animal_id,
    name
from animal_ins as ai
where not exists in (
    select 1
    from animal_outs as ao
    where ai.animal_id = ao.animal_id
)
order by animal_id

=> not exists in  문법 존재 x

 

4. 시도 방법: 

=> not exists 문법 사용

=> left join 사용

 

5. 최종 문제 해결 방법:

=> animal_outs를 기준으로 animal_ins를 조인한 뒤, ai.animal_id가 NULL인 경우를 필터링

=> not exist 사용해 서브쿼리 활용