🔗 1. 문제 URL
프로그래머스 문제 바로가기 👉
https://school.programmers.co.kr/learn/courses/30/lessons/273710
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📝 2. 문제 요구사항 정리
이 문제는 ITEM_INFO 테이블과 ITEM_TREE 테이블을 이용해
부모 아이템이 없는 ROOT 아이템을 조회하는 문제입니다.
업그레이드 관계가 존재할 때,
PARENT_ITEM_ID가 NULL이면 그 아이템은 더 이상 부모가 없는 루트 아이템이 됩니다.
문제의 핵심은 아주 단순합니다.
✔ 요구사항 요약
- ITEM_TREE에서 PARENT_ITEM_ID가 NULL인 아이템을 찾습니다.
- 해당 아이템의 ITEM_ID와 ITEM_NAME을 조회합니다.
- 결과는 ITEM_ID 기준 오름차순으로 정렬합니다.
✅ 3. 정답 SQL 코드
SELECT I.ITEM_ID, I.ITEM_NAME
FROM ITEM_INFO I JOIN ITEM_TREE T USING (ITEM_ID)
WHERE T.PARENT_ITEM_ID IS NULL
ORDER BY I.ITEM_ID ASC;
💡 4. 풀이하면서 느낀 점
이전에 포스팅했던
https://hi-bluebird.tistory.com/2
업그레이드 된 아이템 구하기 문제보다 사실 이 문제를 먼저 풀었어야 했다는 생각이 들었습니다.
문제 자체는 굉장히 기본적인 구조였고,
JOIN과 IS NULL의 조합을 정확히 알고 있는지만 확인하면 되는 유형이었습니다.
특히,
PARENT_ITEM_ID = NULL
처럼 잘못된 NULL 비교를 하고 있지 않은지 한 번 더 점검할 필요가 있습니다.
SQL에서 NULL 비교는 항상 IS NULL / IS NOT NULL을 사용한다는 기본기를 다시 상기하게 해준 문제였습니다
궁금하신 점이나 포스팅에 대한 피드백이 있다면 댓글로 편하게 남겨주세요.
도움이 되셨다면 공감이나 댓글 한 줄 남겨주시면 포스팅을 이어가는 데 큰 힘이 됩니다. 😊
'코딩테스트 > MYSQL' 카테고리의 다른 글
| [프로그래머스 LV.2] 성분으로 구분한 아이스크림 총 주문량 — MySQL 정답 & 해설 (0) | 2025.12.01 |
|---|---|
| [프로그래머스 LV.2] 조건에 맞는 도서와 저자 리스트 출력하기 — MySQL 정답 & 해설 (3) | 2025.11.29 |
| [프로그래머스 LV.2] 조건에 맞는 사원 정보 조회하기 — MySQL 정답 & 해설 (0) | 2025.11.29 |
| [프로그래머스 LV.2] 업그레이드 된 아이템 구하기 — MySQL 정답 & 해설 (0) | 2025.11.21 |
| [프로그래머스 LV.2] 노선별 평균 역 사이 거리 조회하기 — MySQL 정답 & 해설 (0) | 2025.11.20 |