노아

[프로그래머스] 업그레이드 된 아이템 구하기 본문

알고리즘/SQL

[프로그래머스] 업그레이드 된 아이템 구하기

Noaahhh 2024. 9. 20. 22:49

 

Question

 

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

 

 

Pseudocode

 

 

  1. 서브쿼리 사용:
    • 서브쿼리에서 item_tree와 item_info를 parent_item_id를 기준으로 조인하여, rarity가 'RARE'인 아이템의 자식 아이템 ID를 추출합니다.
  2. 외부 쿼리:
    • 외부 쿼리는 item_info 테이블에서 서브쿼리에서 추출된 item_id 값을 기준으로 item_id, item_name, rarity를 조회합니다.
  3. 정렬:
    • 결과는 item_id를 기준으로 내림차순 정렬됩니다.

 

 

 

Code

 

SELECT item_id, item_name, rarity
FROM item_info
WHERE item_id IN (SELECT t.item_id
                  FROM item_info i
                           JOIN item_tree t
                                ON i.item_id = t.parent_item_id
                  WHERE rarity = 'RARE')
ORDER BY item_id DESC