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