inblog logo
|
sxias
    Programmers_SQLSELECTJOIN

    [Programmers_SQL] 22. 업그레이드 된 아이템 구하기

    문정준's avatar
    문정준
    Mar 18, 2025
    [Programmers_SQL] 22. 업그레이드 된 아이템 구하기
    Contents
    1. 문제 설명2. 문제3. 예시4. 문제 풀이5. 결과 확인
     
    💡
    프로그래머스 SELECT 21. 업그레이드 된 아이템 구하기

    1. 문제 설명

    notion image
     
     

    2. 문제

    notion image

    3. 예시

    notion image

    4. 문제 풀이

    select ITEM_INFO.item_id, ITEM_INFO.item_name, ITEM_INFO.rarity from ITEM_INFO inner join ITEM_TREE on ITEM_INFO.item_id = ITEM_TREE.item_id where ITEM_TREE.parent_item_id in (select item_id from ITEM_INFO where rarity = 'RARE') order by ITEM_INFO.item_id desc;
    • 1 Line : item_id, item_name, rarity 출력
      • ITEM_TREE를 참조하여 업그레이드가 가능한 아이템만 출력
      • JOIN을 사용해야 하므로 테이블명.컬럼명 식으로 표기
      • SELECT ITEM_INFO.item_id, ITEM_INFO.item_name, ITEM_INFO.rarity
    • 2 Line : ITEM_INFO, ITEM_TREE를 join
      • from ITEM_INFO inner join ITEM_TREE
    • 3 Line : ITEM_INFO의 item_id와 ITEM_TREE의 item_id가 동일한 데이터만 출력
      • on ITEM_INFO.item_id = ITEM_TREE.item_id
    • 4 Line : rarity가 'RARE'인 아이템들의 모든 다음 업그레이드 아이템의 정보를 출력
      • 업그레이드 아이템은 ITEM_TREE에서 parent_item_id가 null이 아닌 아이템
      • 0 > 1,2 > 3,4 순으로 업그레이드 가능
        • 1,2는 0 / 3,4는 1이 필요 : parent_item_id가 0과 1이 포함되면 됨
      • subquery 활용 : 등급이 ‘RARE’인 아이템의 다음 업그레이드 아이템까지 가져옴
      • where ITEM_TREE.parent_item_id in (select item_id from ITEM_INFO where rarity = ‘RARE)
    • 5 Line : item_id를 기준으로 내림차순 정렬
      • order by ITEM_INFO.item_id desc;

    5. 결과 확인

    notion image
    notion image
    notion image
     
     
    Share article
    Contents
    1. 문제 설명2. 문제3. 예시4. 문제 풀이5. 결과 확인

    Sxias ㆍ a32176740@gmail.com

    RSS·Powered by Inblog