반응형
반응형

출저 : 프로그래머스

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 로 결합하게 된다면 부모-자식간 관계가 보인다

     

    두 테이블을 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 )을 구하면 된다

     

     

     

     

    아래문제는 비슷한 유형이므로 연계해서 풀어보면 도움이 될 것 같다.

    [프로그래머스/MYSQL] 대장균들의 자식의 수 구하기 :: 공기업 전산직을 위한 도서관

    반응형

    + Recent posts

    // 기업0 D-Day (표지) // 기업1 D-Day