Lv2. 업그레이드 된 아이템 구하기 (MySQL)
링크: https://school.programmers.co.kr/learn/courses/30/lessons/273711
내가 작성한 코드
-- 풀이1 (서브쿼리 IN)
SELECT I.ITEM_ID, I.ITEM_NAME, I.RARITY
FROM ITEM_INFO I
JOIN ITEM_TREE T
ON I.ITEM_ID = T.ITEM_ID
WHERE T.PARENT_ITEM_ID IN (SELECT ITEM_ID
FROM ITEM_INFO
WHERE RARITY = 'RARE')
ORDER BY I.ITEM_ID DESC;
-- 풀이2 (EXISTS)
SELECT I.ITEM_ID, I.ITEM_NAME, I.RARITY
FROM ITEM_INFO I
JOIN ITEM_TREE T
ON I.ITEM_ID = T.ITEM_ID
-- 서브쿼리가 참(True)인 행만 메인 쿼리에서 출력함
WHERE EXISTS (SELECT 1
FROM ITEM_INFO O
WHERE O.ITEM_ID = T.PARENT_ITEM_ID -- 현재 아이템의 부모 ID와 같은 아이템을 찾고
AND O.RARITY = 'RARE') -- 그 부모 아이템의 희귀도가 RARE인지 확인한다
ORDER BY I.ITEM_ID DESC;
'코딩테스트' 카테고리의 다른 글
| [26.02.27 코테(MySQL)]-대장균의 크기에 따라 분류하기 2 (0) | 2026.02.27 |
|---|---|
| [26.02.26 코테(MySQL)]-멸종위기의 대장균 찾기 (0) | 2026.02.26 |
| [26.02.24 코테(MySQL/Oracle)]-조회수가 가장 많은 중고 게시판의 첨부파일 조회하기 (0) | 2026.02.24 |
| [26.02.23 코테(MySQL)]-연도별 대장균 크기의 편차 구하기 (0) | 2026.02.23 |
| [26.02.20 코테(MySQL/Oracle)]-자동차 평균 대여 기간 구하기 (0) | 2026.02.20 |