아이템의 희귀도가
RARE인 아이템들의 모든 다음 업그레이드 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬주세요.
# WHERE문을 사용해서 푼 경우
SELECT ITEM_ID, ITEM_NAME, RARITY
FROM ITEM_INFO
WHERE ITEM_ID IN (SELECT IT.ITEM_ID
FROM ITEM_INFO AS II RIGHT JOIN ITEM_TREE AS IT
ON II.ITEM_ID = IT.PARENT_ITEM_ID
WHERE II.RARITY = 'RARE')
ORDER BY ITEM_ID DESC;
# JOIN을 사용해서 푼 경우
SELECT II.ITEM_ID, ITEM_NAME, RARITY
FROM ITEM_INFO II JOIN (SELECT T.ITEM_ID
FROM ITEM_INFO I JOIN ITEM_TREE T ON I.ITEM_ID = T.PARENT_ITEM_ID
WHERE I.RARITY = 'RARE') UI ON II.ITEM_ID = UI.ITEM_ID
ORDER BY 1 DESC;
처음에 풀었을 때가 where문을 사용해서 풀었고, 두번째 풀이에 도전했을 때가 join을 사용해서 풀었다. where문을 사용해서 푼 풀이가 join을 한 번만 사용해서 푼 풀이여서 더 좋은 풀이이지 않을까라는 생각이 든다.