학습/SQL

[프로그래머스]SQL학습 - 업그레이드 할 수 없는 아이템 구하기

용이03 2025. 2. 20. 13:29

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

SELECT ITEM_ID,ITEM_NAME, RARITY
FROM ITEM_INFO 
WHERE  ITEM_ID  NOT IN  (SELECT IFNULL(PARENT_ITEM_ID,0)
                         FROM ITEM_TREE)
ORDER BY ITEM_ID DESC

 

아이템 정보 테이블에 있는 ITEM_ID 가

ITEM_TREE 테이블에 PARENT_ITEM_ID 에 있는 ID로 업그레이드 됨.

 

반대로

아이템 정보 테이블에 있는 ITEM_ID 가

ITEM_TREE 테이블에 PARENT_ITEM_ID 에 없다면 업그레이드 할 수 없다.

 

서브쿼리 활용해서 ITEM_ID 가 NOT IN 인 경우만 추출하기로 함

NULL값이 있어 재대로 된 추출이 안되어 

ITEM_ID 가 0인 경우 더이상 업그레이드 안되는 아이템이르모

자기자신인 0을 부모 아이템 ID 로 채워준 후 추출하니 에러 없이 추출 가능함.