학습/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 로 채워준 후 추출하니 에러 없이 추출 가능함.