SQL

프로그래머스 SQL 오답노트 Level 2 업그레이드 된 아이템 구하기

datahaseo 2025. 10. 16. 09:30

프로그래머스 오답노트  Level 2 업그레이드 된 아이템 구하기

<문제>

아이템의 희귀도가 'RARE'인 아이템들의 모든 다음 업그레이드 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬주세요

 

 

<접근 방법>

1.RARE 인 ITEM_ID 를 구한다
2.해당 ITEM_ID 서브 쿼리로 작성하고, 추출된 RARE 인 ITEM_ID 들과 같은 PARENT_ITEM_ID 를 가진 항목들을 추출한다

 

 

<틀렸던 방법>

초반 쿼리는 아이템의 희귀도가 RARE 인 경우에 대한 필터링 조건이 없었음

select I.ITEMID ITEMID, I.ITEMNAME ITEMNAME, I.RARITY RARITY From ITEMINFO I
INNER JOIN itemTREE T ON I.ITEMID = T.ITEMID
WHERE T.PARENTITEMID IN (SELECT DISTINCT(ITEMID) FROM itemTREE)
ORDER BY I.ITEM_ID DESC

 

 

 

<정답 쿼리>

 SELECT I.ITEM_ID,I.ITEM_NAME,I.RARITY  from ITEM_INFO I INNER 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