아이템의 희귀도가 'RARE'인 아이템들의 모든 다음 업그레이드 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬주세요.
SELECT A.ITEM_ID
, B.ITEM_NAME
, B.RARITY
FROM ITEM_TREE A
LEFT JOIN ITEM_INFO B ON A.ITEM_ID = B.ITEM_ID
WHERE PARENT_ITEM_ID IN(SELECT DISTINCT(ITEM_ID)
FROM ITEM_INFO
WHERE RARITY = 'RARE')
ORDER BY ITEM_ID DESC
LEFT JOIN : ITEM 정보들을 추가하기 위해 사용 , 그냥 JOIN을 이용해도 상관 없으나 LEFT JOIN 을 이용한 이유는 어차피 ITEM_TREE
테이블의 업그레이드 된 ITEM_ID 정보만 필요하기 때문입니다.
WHERE IN : 결국 핵심은 ITEM_ID
가 RARE
등급 이면서 PARENT_ITEM_ID
인 경우 라고 생각합니다. (PARENT_ITEM_ID
에 있는 ITEM_ID
값 들이 업그레이드 가능한 ITEM_ID
이므로)