꿈은 데이터분석가, 취미는 계획

[MY SQL 업그레이드 할 수 없는 아이템 구하기(SELF JOIN) 본문

SQL/sql문풀

[MY SQL 업그레이드 할 수 없는 아이템 구하기(SELF JOIN)

data_2080 2024. 7. 28. 21:42
728x90

출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] :  업그레이드 할 수 없는 아이템 구하기

링크: https://school.programmers.co.kr/learn/courses/30/lessons/131124


문제(일부):  부모, 자식관계를 활용하여 더 이상 업그레이드 할 수 없는 아이템 구하기


SELF JOIN과 WITH절 사용하기

1) WITH절에서 SELF JOIN, WHERE 절에서 PARENT_ID가 NULL인 값(업그레이드 x)을 추출
2) 메인쿼리에서 아이템정보 테이블과 JOIN하여 더 이상 업그레이드 할 수 없는 아이템의 정보 조회

WITH NOT_UPGRADE AS( 
    SELECT i1.ITEM_ID
        FROM ITEM_TREE AS i1
            LEFT JOIN ITEM_TREE AS i2
                ON i1.ITEM_ID = i2.PARENT_ITEM_ID
        WHERE i2.PARENT_ITEM_ID IS NULL)
        
SELECT ii.ITEM_ID
        ,ii.ITEM_NAME
        ,ii.RARITY
FROM ITEM_INFO AS ii
    INNER JOIN NOT_UPGRADE AS n
     ON ii.ITEM_ID = n.ITEM_ID
ORDER BY ii.ITEM_ID DESC
728x90