[SQL] 업그레이드 된 아이템 구하기

Ray·2025년 6월 10일

SQL

목록 보기
26/39

🔎 문제설명

  • 출처: 프로그래머스
  • 사용언어(RDBMS): SQL(MySQL)
  • 문제:

    아이템의 희귀도가 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을 한 번만 사용해서 푼 풀이여서 더 좋은 풀이이지 않을까라는 생각이 든다.

profile
미래의 독자인 나를 위해 글을 씁니다.

0개의 댓글