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

2024. 6. 11. 01:46·PS/SQL

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명

  • Lv 3 문제
  • 더 이상 업그레이드할 수 없는 아이템의 아이템 ID, 아이템명, 아이템의 희귀도 출력
  • 결과는 아이템 ID 기준으로 내림차순 정렬
  • 'ITEM_A' → 'ITEM_B' 업그레이드 가능할 때, ITEM_A는 ITEM_B의 PARENT_ITEM 이다.
  • PARENT_ITEM이 없는 아이템은 ROOT_ITEM 이다.

 

 

 

 

문제 풀이

JOIN 사용

SELECT II.ITEM_ID, II.ITEM_NAME, II.RARITY
FROM ITEM_INFO II LEFT OUTER JOIN ITEM_TREE IT
ON II.ITEM_ID = IT.PARENT_ITEM_ID AND IT.PARENT_ITEM_ID IS NOT NULL
WHERE IT.PARENT_ITEM_ID IS NULL
ORDER BY II.ITEM_ID DESC;

 

◼️두 테이블을 LEFT OUTER JOIN 해서 업그레이드할 수 없는 아이템 구하기

    -  ITEM_INFO 테이블과 ITEM_TREE 테이블을 LEFT OUTER JOIN한다.

    -  조인 조건은 ITEM_ID와 PARENT_ITEM_ID가 같고, PARENT_ITEM_ID가 NULL이 아니다.

    -  LEFT OUTER JOIN 후, PARENT_ITEM_ID 가 NULL인 아이템이 업그레이드 할 수 없는 아이템이다.

 

◼️ORDER BY 로 ITEM ID 기준 내림차순 정렬

 

 

NOT IN 연산자 사용

SELECT ITEM_ID, ITEM_NAME, RARITY
FROM ITEM_INFO
WHERE ITEM_ID NOT IN (SELECT PARENT_ITEM_ID
                      FROM ITEM_TREE
                      WHERE PARENT_ITEM_ID IS NOT NULL)
ORDER BY ITEM_ID DESC;

 

◼️ 서브 쿼리로 업그레이드 할 수 있는 ITEM들의 PARENT_ITEM_ID 구하기

    -  서브 쿼리에서 PARENT_ITEM_ID가 NULL이 아닌 PARENT_ITEM_ID만 조회 → 업그레이드 가능한 ITEM들의 PARENT_ITEM_ID

 

◼️ 업그레이드할 수 없는 ITEM 구하기

    -  메인 쿼리에서 서브쿼리의 PARENT_ITEM_ID와 일치하지 않은 ITEM_ID 정보만 추출 → 업그레이드가 불가능한 ITEM들의 ITEM_ID

 

◼️ORDER BY 로 ITEM ID 기준 내림차순 정렬

저작자표시 비영리 변경금지

'PS > SQL' 카테고리의 다른 글

[프로그래머스][SQL] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기  (1) 2024.06.18
[프로그래머스][SQL] 조건에 부합하는 중고거래 상태 조회하기  (0) 2024.06.18
[프로그래머스][SQL] 조건에 맞는 사용자 정보 조회하기  (0) 2024.06.10
[프로그래머스][SQL] 자동차 평균 대여 기간 구하기  (0) 2024.06.09
[프로그래머스][SQL] 프로그래머스 SQL 문제 풀이 (1)  (0) 2024.06.04
'PS/SQL' 카테고리의 다른 글
  • [프로그래머스][SQL] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
  • [프로그래머스][SQL] 조건에 부합하는 중고거래 상태 조회하기
  • [프로그래머스][SQL] 조건에 맞는 사용자 정보 조회하기
  • [프로그래머스][SQL] 자동차 평균 대여 기간 구하기
nyrimmm
nyrimmm
  • nyrimmm
    개발기록
    nyrimmm
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (66)
      • Java (6)
      • Spring & SpringBoot (3)
      • Network (1)
      • DataBase (0)
      • SQL (1)
      • IntelliJ (3)
      • Git (0)
      • 자료구조 & 알고리즘 (2)
      • 트러블 슈팅 (1)
        • Spring (1)
      • PS (48)
        • 백준 (10)
        • 프로그래머스 (0)
        • SQL (9)
        • 이코테 (29)
      • 후기 & 회고 (1)
  • 태그

  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
nyrimmm
[프로그래머스][SQL]업그레이드 할 수 없는 아이템 구하기
상단으로

티스토리툴바