[SQL] 업그레이드 된 아이템 구하기

NoHae·2025년 2월 3일

SQL

목록 보기
43/86
post-thumbnail

문제 출처

코딩테스트 연습 > SELECT > 업그레이드 된 아이템 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/273711

문제 설명


접근 방법

서브쿼리를 이용하여 item_tree의 item_id들을 가져오는데 그 조건을 item_tree의 parent_item_id와 item_info의 item_id가 일치하는 것들을 가져온다.

select item_id, item_name, rarity
from item_info
where item_id in (select it.item_id
                 from item_tree it, item_info ii
                 where it.parent_item_id = ii.item_id and ii.rarity = 'RARE')
order by item_id desc

알게된 점

이해하는데 꽤나 오래걸렸다.
서브 쿼리에서 왜 item_tree의 item_id로 가져와야하는 이유는
item_info 에서 rarity = 'RARE'인 아이템 id들을 item_tree의 parent_item_id와 비교하고, 조건에 일치하는 item_tree의 item_id를 가져와야한다.

만약 item_tree의 parent_item_id에 있는 item_info의 item_id를 가져오기 때문에 예시의 경우 0,1 밖에 가져오지 못 한다.

문제푼 흔적

profile
노력 해보려고 하는 사람(00년생 소프트웨어융합학과, 24년 12월 부터 백엔드 및 코테 공부 시작)

0개의 댓글