CODING TEST/MySQL

Lv2 - ROOT 아이템 구하기

iamyuunzo 2025. 7. 29. 14:49

📌 문제 정보

- 문제 이름 : 프로그래머스 - (IS NULL) ROOT 아이템 구하

- 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/273710

 

 

 

📌 문제 요약

- ITEM_INFO 테이블 : ITEM_ID, ITEM_NAME, RARITY, PRICE

- ITEM_TREE 테이블 : ITEM_ID, PARENT_ITEM_ID 

 

- 'ITEM_A'->'ITEM_B'와 같이 업그레이드가 가능할 때

- 'ITEM_A'를 'ITEM_B'의 PARENT 아이템

- PARENT 아이템이 없는 아이템 => ROOT 아이템

 

- ROOT 아이템을 찾아 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME)을 출력하는 SQL문을 작성해 주세요. 결과는 아이템 ID를 기준으로 오름차순 정렬. 각 아이템들은 오직 하나의 PARENT 아이템 ID를 가지며, ROOT 아이템의 PARENT 아이템 ID는 NULL

 

예시)

ITEM_ID  ITEM_NAME  RARITY  PRICE
0 ITEM_A COMMON 10000
1 ITEM_B LEGEND 9000
2 ITEM_C LEGEND 11000
3 ITEM_D UNIQUE 10000
4 ITEM_E LEGEND 12000

 

ITEM_ID  PARENT_ITEM_ID
0 NULL
1 0
2 0
3 NULL
4 3

 

출력)

ITEM_ID  ITEM_NAME
0 ITEM_A
3 ITEM_D

 

 

📌 내 풀이 및 코드

SELECT ITEM_TREE.ITEM_ID, ITEM_NAME
FROM ITEM_INFO
JOIN ITEM_TREE 
    ON ITEM_INFO.ITEM_ID = ITEM_TREE.ITEM_ID
WHERE PARENT_ITEM_ID IS NULL
ORDER BY ITEM_ID ASC;

- JOIN과 FROM 테이블 정하는거 진짜 헷갈림... 이해한 바로는 ID는 두 테이블에 다 있지만 NAME은 INFO에만 있기 때문에 INFO를 기준으로 시작해야함!

 

 

 

📌 새로 배운 문법

<-- 이번 문제에서 새로 배운 Java 문법 정리 -->

- .