Skills/SQL

프로그래머스: ROOT 아이템 구하기 (MySQL)

듀공🥕 2024. 3. 9. 00:08

 

1. 문제


2. 문제 풀기 전에,

  • ITEM_INFO 👉🏻 아이템 ID, 아이템 명 조회
  • ITEM_TREE 👉🏻 X
  • ROOT 아이템 조회하기
  • 아이템 ID ASC

3. 테이블

ITEM_INFO AS INFO

 

ITEM_TREE AS TREE

 

4. 풀이 과정

1단계) 테이블 INFO와 테이블 TREE가 공통으로 가지고 있는 컬럼인 ITEM_ID를 이용하여 INNER JOIN을 해준다.

SELECT
FROM ITEM_INFO AS INFO
INNER JOIN ITEM_TREE AS TREE ON INFO.ITEM_ID = TREE.ITEM_ID

 

2단계) ‘PARENT 아이템이 없는 아이템을 ROOT 아이템’이기 때문에, IS NULL을 이용하여 PARENT_ITEM_ID 컬럼에서 NULL 값을 조회하는 WHERE절을 작성해 준다.

SELECT
FROM ITEM_INFO AS INFO
INNER JOIN ITEM_TREE AS TREE ON INFO.ITEM_ID = TREE.ITEM_ID
WHERE TREE.PARENT_ITEM_ID IS NULL

 

3단계) 아이템 ID와 아이템 명을 조회하는 SELECT문을 작성해 준다.

SELECT INFO.ITEM_ID, INFO.ITEM_NAME
FROM ITEM_INFO AS INFO
INNER JOIN ITEM_TREE AS TREE ON INFO.ITEM_ID = TREE.ITEM_ID
WHERE TREE.PARENT_ITEM_ID IS NULL

 

4단계) 아이템 ID를 기준으로 오름차순 정렬을 해준다.

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

 

5. 완성 코드

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

 

 

🔗 관련 링크

프로그래머스 문제 - https://school.programmers.co.kr/learn/courses/30/lessons/273710

 

728x90