FireDrago
[SQL] 업그레이드 할 수 없는 아이템 구하기 본문
문제


풀이
문제를 읽고 필요한 SQL을 정리해보았다.
1. 더 이상 업그레이드가 가능하지 않은 아이템의 ITEM_ID를 구한다.
(ITEM_TREE 테이블에서 PARENT_ITEM_ID 값이 없는 ITEM_ID를 구한다)
2. 1의 ITEM_ID 를 바탕으로 ITEM_INFO 테이블에서 ITEM_NAME, RARITY를 구하고 출력한다.
select
item_id, item_name, rarity
from
item_info
where
item_id in (
select
item_id
from
item_tree
where
item_id not in (
select
parent_item_id
from
item_tree
where
parent_item_id is not null
)
)
order by
item_id desc
처음 작성한 쿼리는 너무 복잡하다.....
고민끝에 더 간단한 방식의 쿼리로 수정할 수 있었다.
1. ITEM_TREE 테이블에서 null 을 제외한 PARENT_ITEM_ID 값을 중복없이 구한다.
2. ITEM_INFO 테이블에서 1에서 구한 id 값을 제외한 ITEM_ID 의 ITEM_NAME, RARITY를 구한다.
select
item_id, item_name, rarity
from
item_info
where
item_id not in (
select distinct
parent_item_id
from
item_tree
where
parent_item_id is not null
)
order by
item_id desc'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [SQL] 입양 시각 구하기(2) (0) | 2024.09.12 |
|---|---|
| [SQL] 상품 별 오프라인 매출 구하기 (0) | 2024.08.28 |
| [SQL] 즐겨찾기가 가장 많은 식당 정보 출력 (0) | 2024.08.21 |
| Lv0 - 치킨쿠폰 (0) | 2023.06.25 |
| Lv0 - 캐릭터의 좌표 (자바) (0) | 2023.06.22 |
