문제 출저
https://school.programmers.co.kr/learn/courses/30/lessons/273711
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
아이템의 희귀도가 RARE인 아이템의 모든 다음 업그레이드 아이템의 아이디, 아이템 명, 아이템 희귀도를 출력하고 아이템 ID를 기준으로 내림차순 정렬해야 합니다.
주어진 테이블은 아이템 정보가 담긴 ITEM_INFO와 아이템들의 관계를 나타내는 ITEM_TREE 입니다.
RARE인 아이템의 모든 다음 업그레이드 아이템 ID를 서브쿼리를 통해 구하고 ITEM_INFO에서 정보를 가져옵니다.
SQL
SELECT
INFO.ITEM_ID,
INFO.ITEM_NAME,
INFO.RARITY
FROM
ITEM_INFO AS INFO
WHERE
INFO.ITEM_ID IN (SELECT TREE.ITEM_ID
FROM ITEM_INFO AS INFO
JOIN ITEM_TREE AS TREE ON INFO.ITEM_ID = TREE.PARENT_ITEM_ID
WHERE INFO.RARITY = 'RARE'
)
ORDER BY
INFO.ITEM_ID DESC