https://school.programmers.co.kr/learn/courses/30/lessons/273712
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 문제 :
더 이상 업그레이드할 수 없는 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬해 주세요.
- 풀이 :
- MySQL
- left join해서 i.item_id랑 t.parent_item_id가 같으면 t.item_id가 있는 table 생성
- (= i.item_id에서 t.parent_item_id가 같으면 parent_item라는 뜻)
- left join이니까 parent_item이 아니면 t.item_id가 없음 (= where절)
- left join해서 i.item_id랑 t.parent_item_id가 같으면 t.item_id가 있는 table 생성
-- ITEM_INFO : ITEM_ID, ITEM_NAME, RARITY, PRICE
-- ITEM_TREE : ITEM_ID, PARENT_ITEM_ID
select i.ITEM_ID, i.ITEM_NAME, i.RARITY
from ITEM_INFO i
left join ITEM_TREE t on i.ITEM_ID = t.PARENT_ITEM_ID
where t.ITEM_ID is null
order by i.ITEM_ID DESC;반응형
'SQL 테스트' 카테고리의 다른 글
| [GROUP BY] 진료과별 총 예약 횟수 출력하기 (2) | 2025.08.04 |
|---|---|
| [IS NULL] 업그레이드 할 수 없는 아이템 구하기 (MySQL) (0) | 2025.02.21 |
| [IS NULL] ROOT 아이템 구하기 (MySQL) (0) | 2025.02.21 |
| [IS NULL] 나이 정보가 없는 회원 수 구하기 (0) | 2025.02.21 |
| [IS NULL] NULL 처리하기 (0) | 2025.02.21 |