SQL Coding Test/[Programmers]

[Programmers] 업그레이드 된 아이템 구하기 (Lv.2)

duswn1204 2026. 5. 23. 17:46

🔗 문제 link : https://school.programmers.co.kr/learn/courses/30/lessons/273711


🖥️ 문제 풀이

SELECT I.ITEM_ID, I.ITEM_NAME, I.RARITY
FROM ITEM_INFO I
JOIN ITEM_TREE T ON I.ITEM_ID = T.ITEM_ID
WHERE T.PARENT_ITEM_ID IN (
    SELECT ITEM_ID
    FROM ITEM_INFO
    WHERE RARITY = 'RARE'
)
ORDER BY I.ITEM_ID DESC;

💡 문제 해결

서브쿼리 IN을 사용한 이유
: RARE 아이템 ID가 여러 개일 수 있기 때문

예:

RARE = 0,1,3,4
 

하나만 비교:

=
 

여러 개 비교:

IN (...)
 

 

사용
서브쿼리로 RARE 아이템 ID 목록을 만든 뒤, PARENT_ITEM_ID가 그 목록에 포함되는 업그레이드 아이템을 찾음