문제
내가 작성한 정답
SELECT I.ITEM_ID,I.ITEM_NAME,I.RARITY
FROM ITEM_TREE T
LEFT JOIN ITEM_INFO I ON T.ITEM_ID = I.ITEM_ID
WHERE PARENT_ITEM_ID IN (SELECT ITEM_ID
FROM ITEM_INFO
WHERE RARITY = 'RARE')
ORDER BY I.ITEM_ID DESC;
→ 다음 업그레이드 아이템이 존재하지 않는 경우는 출력되지 않도록 LEFT JOIN을 사용했다.
이 경우는 (INNER) JOIN을 사용해도 될 것이다.
→ 다음 업그레이드 아이템이 존재하지 않은 경우도 출력되도록 하기위해서는 RIGHT JOIN을 사용해야한다.
다른 사람들이 작성한 정답
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 S.ITEM_ID
FROM ITEM_INFO S
WHERE RARITY = 'RARE'))
ORDER BY ITEM_ID DESC
→ 다른 사람들의 풀이를 보니 대부분 공통부분만 출력하는 (INNER) JOIN을 사용했다!
Share article