본문 바로가기
빅데이터 공부/SQL

[프로그래머스 / MySQL / Lv.3 업그레이드 할 수 없는 아이템 구하기]

by waggish 2025. 3. 17.
  • 문제설명


  • 문제


  • 풀이

ITEM_A ➡ ITEM_B ➡ ITEM_D
              ↘                ↘
                  ITEM_C        ITEM_E

✅ ITEM_TREE테이블을 보면 더 이상 업그레이드 할 수 없는 아이템은  ITEM_C, ITEM_D,  ITEM_E

 

1. ITEM_INFO 테이블기준으로 ITEM_TREE 테이블과 LEFT JOIN

SELECT *
FROM ITEM_INFO I
LEFT JOIN ITEM_TREE T
ON I.ITEM_ID = T.PARENT_ITEM_ID

👉 해당 아이템이 다른 아이템의 부모인지 체크!!

 

2. 부모로 등장한 적이 없는 아이템만 필터링 ( = 다른 아이템으로 업그레이드되지 않는 아이템)

SELECT *
FROM ITEM_INFO I
LEFT JOIN ITEM_TREE T
ON I.ITEM_ID = T.PARENT_ITEM_ID
WHERE T.ITEM_ID IS NULL

👉 T.ITEM_ID = 업그레이드된 아이템므로 NULL이면 더 이상 업그레이드 할 수 없는 최종 아이템임

 

3. 아이템 ID를 기준으로 내림차순 정렬

SELECT I.ITEM_ID, I.ITEM_NAME, I.RARITY
FROM ITEM_INFO I
LEFT JOIN ITEM_TREE T
ON I.ITEM_ID = T.PARENT_ITEM_ID
WHERE T.ITEM_ID IS NULL
ORDER BY I.ITEM_ID DESC;

  • 실행결과