코딩테스트/SQL

[SQL] [서브쿼리] 업그레이드 된 아이템 구하기

박소민 2024. 11. 1. 22:39
업그레이드 된 아이템 구하기
 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

  • 내 풀이
    • RARE인 아이템이 자신의 부모인 아이템을 찾고
    • 그 아이템의 정보를 INFO에서 찾아오는 것
SELECT I.ITEM_ID, I.ITEM_NAME, I.RARITY
FROM ITEM_INFO AS I
JOIN 
    (SELECT TREE.ITEM_ID
    FROM ITEM_TREE AS TREE
    JOIN (SELECT INFO.ITEM_ID, INFO.ITEM_NAME, INFO.RARITY
        FROM ITEM_INFO AS INFO
        WHERE INFO.RARITY="RARE" ) AS R
    ON R.ITEM_ID= PARENT_ITEM_ID) AS C
ON C.ITEM_ID= I.ITEM_ID
ORDER BY 1 DESC
  • 최적화
SELECT I.ITEM_ID, I.ITEM_NAME, I.RARITY
FROM ITEM_INFO AS I
JOIN ITEM_TREE AS T ON I.ITEM_ID = T.ITEM_ID
JOIN ITEM_INFO AS P ON T.PARENT_ITEM_ID = P.ITEM_ID
WHERE P.RARITY = 'RARE'
ORDER BY I.ITEM_ID DESC;