https://school.programmers.co.kr/learn/courses/30/lessons/273712
1. Problem
더 이상 업그레이드할 수 없는 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬해 주세요.
2. Analysis
1. 자식 ID가 없는 경우가 더 이상 업그레이드 할 수 없는 경우라는 것을 파악했고 SELF-JOIN을 통해, 자식 ID가 없는 경우를 조건으로 주면 된다고 생각함.
FROM ITEM_TREE IT1
LEFT JOIN ITEM_TREE IT2
ON IT1.ITEM_ID = IT2.PARENT_ITEM_ID
WHERE IT2.ITEM_ID IS NULL -- 자식 ID가 NULL인 경우
2. 최종 결과 정보에 포함될 ITEM_NAME, RARITY를 구하기 위해 ITEM_INFO 테이블을 조인하고 활용
FROM ITEM_TREE IT1
LEFT JOIN ITEM_TREE IT2
ON IT1.ITEM_ID = IT2.PARENT_ITEM_ID
LEFT JOIN ITEM_INFO II
ON IT1.ITEM_ID = II.ITEM_ID
3. Solution
-- 코드를 작성해주세요
SELECT
IT1.ITEM_ID
,II.ITEM_NAME
,II.RARITY
FROM ITEM_TREE IT1
LEFT JOIN ITEM_TREE IT2
ON IT1.ITEM_ID = IT2.PARENT_ITEM_ID
LEFT JOIN ITEM_INFO II
ON IT1.ITEM_ID = II.ITEM_ID
WHERE IT2.ITEM_ID IS NULL
ORDER BY
IT1.ITEM_ID DESC
;
'Algorithm > SQL' 카테고리의 다른 글
[SQL] 프로그래머스 - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2024.07.15 |
---|---|
[MySQL] 재귀 (RECURSIVE) 테이블 생성 (0) | 2024.07.13 |
[SQL] 프로그래머스 - 특정 세대의 대장균 찾기 (0) | 2024.07.13 |
[SQL] 프로그래머스 - 부서별 평균 연봉 조회하기 (0) | 2024.07.13 |
[SQL] 프로그래머스 - 물고기 종류 별 대어 찾기 (0) | 2024.07.13 |