코딩테스트 연습 > IS NULL > 업그레이드 할 수 없는 아이템 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/273712


PARENT_ITEM_ID 가 IS NOT NULL 한 ITEM_ID를 불러오면 된다.
A -> B,C 로 업그레이드 가능
B -> D,E 로 업그레이드 가능
하므로 ITEM_TREE에서 업그레이드가 가능한 ITEM들의 PARENT_ITEM_ID를 가져오고, WHERE 절에서 NOT IN을 이용하여 업그레이드가 되지 않는 ITEM_ID에 접근하면 된다.
SELECT II.ITEM_ID, II.ITEM_NAME, II.RARITY
FROM ITEM_INFO II JOIN ITEM_TREE IT ON II.ITEM_ID = IT.ITEM_ID
WHERE II.ITEM_ID NOT IN (SELECT DISTINCT PARENT_ITEM_ID FROM ITEM_TREE WHERE PARENT_ITEM_ID IS NOT NULL)
ORDER BY II.ITEM_ID DESC;
풀이에선 JOIN을 했지만 본 쿼리에선 ITEM_TREE 테이블 정보를 사용하지 않으므로 JOIN을 하지 않아도 된다. 추가로 서브 쿼리의 DISTINCT가 빠져도 PARENT_ID는 0,1만 가져오므로 빠져도 된다.
