반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/273712#qna
접근 방법
업그레이드 할 수 없 아이템을 찾기 위해서는 PARENT_ITEM_ID에 없는 ID를 구하면 된다.
PARENT_ITEM_ID에 NULL값이 있기 떄문에 주의해야 한다.
MYSQL
#SOL1
SELECT
A.ITEM_ID
, ITEM_NAME
, RARITY
FROM
ITEM_INFO A
LEFT JOIN ITEM_TREE B
ON A.ITEM_ID = B.PARENT_ITEM_ID
WHERE
PARENT_ITEM_ID IS NULL
ORDER BY
ITEM_ID DESC
#SOL2
SELECT ITEM_ID, ITEM_NAME, RARITY
FROM ITEM_INFO INFO
WHERE NOT EXISTS (SELECT 1 FROM ITEM_TREE TREE
WHERE TREE.PARENT_ITEM_ID = INFO.ITEM_ID)
ORDER BY ITEM_ID DESC
#SOL3
SELECT ITEM_ID, ITEM_NAME, RARITY
FROM ITEM_INFO F
WHERE F.ITEM_ID NOT IN (SELECT PARENT_ITEM_ID FROM ITEM_TREE WHERE PARENT_ITEM_ID IS NOT NULL)
ORDER BY 1 DESC
반응형
'PS > SQL' 카테고리의 다른 글
[프로그래머스] 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2024.05.03 |
---|---|
[프로그래머스] 잡은 물고기의 평균 길이 구하기 (0) | 2024.04.16 |
[프로그래머스] ROOT 아이템 구하기 (0) | 2024.04.16 |
[프로그래머스] 경기도에 위치한 식품창고 목록 출력하기 (0) | 2024.04.13 |
[프로그래머스] NULL 처리하기 (0) | 2024.04.02 |