728x90

< 링크 >
여기를 클릭하세요 (프로그래머스 고득점 Kit 106문제 모음)

여기를 클릭하세요 (21. 업그레이드 된 아이템 구하기)

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

< 내가 작성한 코드 >
SELECT T.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 ITEM_ID
FROM ITEM_INFO
WHERE RARITY = 'RARE'
)
ORDER BY T.ITEM_ID DESC

< 풀이 >
1. 처음에 문제를 잘 이해하지 못했다.
요약하자면 부모의 희귀도가 'RARE'인 자식 아이템을 출력하는 것이다.

2. 먼저, 희귀도가 'RARE'인 아이템들을 찾는 서브쿼리를 작성했다.
SELECT ITEM_ID
FROM ITEM_INFO
WHERE RARITY = 'RARE'

3. 다음으로, 이 서브쿼리를 사용하여 ITEM_TREE 테이블에서
PARENT_ITEM_ID가 위 서브쿼리에 해당하는 아이템들을 찾도록 했다.

4. ITEM_TREE 테이블과 ITEM_INFO 테이블을 조인하여 해당 아이템들의 정보를 가져오도록 했다.

5. 최종적으로 결과를 아이템 ID 기준으로 내림차순으로 정렬했다.

+ Recent posts