SELECT
문제풀이
A. JOIN 사용
SELECT A.ITEM_ID, A.ITEM_NAME, A.RARITY FROM ITEM_INFO AS A
LEFT JOIN ITEM_TREE AS B ON A.ITEM_ID = B.PARENT_ITEM_ID
WHERE B.ITEM_ID IS NULL
ORDER BY A.ITEM_ID DESC
N차세대 부모-자식관련 문제를 풀 땐 조인을 이용하여 생각해야한다. 그리고 이 문제는 문제에 두 테이블은 분리가 되어있는 것 처럼 보이지만 PARENT_ITEM_ID만 따로 분리했다고도 볼 수 있다. 그래서 어떻게 결합하냐에 따라 문제를 보다 쉽게 해석할 수 있게된다.
처음에 ITEM_ID 는 자식, PARENT_ITEM_ID 는 부모를 의미하고있다.
그렇다면 테이블 두개를 ON A.ID = B.PARENT_ITEM_ID 로 결합하게 된다면 부모-자식간 관계가 보인다
좌측 A. ITEM_ID는 B.PARENT_ID 부모포지션으로 같아지고
B.PARENT_ID의 자식 B. ITEM_ID 는 A. ITEM_ID의 자식으로 볼 수 있다.
즉 아래와 같은 테이블로 볼 수 있다
이 이후엔 업그레이드가 불가능한 조건 ( = 자식이 없는 부모, WHERE B.ITEM_ID IS NULL )을 구하면 된다
아래문제는 비슷한 유형이므로 연계해서 풀어보면 도움이 될 것 같다.
'필기ㆍ코테 공부 > SQL' 카테고리의 다른 글
[프로그래머스/MYSQL] 오프라인/온라인 판매 데이터 통합하기 (2) | 2025.01.16 |
---|---|
[프로그래머스/MYSQL] 분기별 분화된 대장균의 개체 수 구하기 (2) | 2025.01.15 |
[프로그래머스/MYSQL] 대장균들의 자식의 수 구하기 (0) | 2025.01.14 |
[프로그래머스/MYSQL] 주문량이 많은 아이스크림들 조회하기 (0) | 2025.01.12 |
[프로그래머스/MYSQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2025.01.05 |