SQL 테스트

[IS NULL] 업그레이드 할 수 없는 아이템 구하기 (MySQL)

하루0414 2025. 2. 21. 15:50

https://school.programmers.co.kr/learn/courses/30/lessons/273712

 

프로그래머스

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

programmers.co.kr

 

- 문제 :

더 이상 업그레이드할 수 없는 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬해 주세요.

 

- 풀이 :

  • MySQL
    • left join해서 i.item_id랑 t.parent_item_id가 같으면 t.item_id가 있는 table 생성
      • (= i.item_id에서 t.parent_item_id가 같으면 parent_item라는 뜻)
    • left join이니까 parent_item이 아니면 t.item_id가 없음 (= where절)
-- ITEM_INFO : ITEM_ID, ITEM_NAME, RARITY, PRICE
-- ITEM_TREE : ITEM_ID, PARENT_ITEM_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;
반응형