문제


정답
SELECT A.ITEM_ID, ITEM_NAME, RARITY FROM ITEM_INFO AS A
JOIN ITEM_TREE AS B
ON A.ITEM_ID = B.ITEM_ID
WHERE B.PARENT_ITEM_ID IN (SELECT ITEM_ID FROM ITEM_INFO WHERE RARITY = 'RARE')
ORDER BY A.ITEM_ID DESC;
쿼리 설명
- SELECT 절:
ITEM_INFO
테이블에서ITEM_ID
,ITEM_NAME
,RARITY
열을 선택합니다.- 여기서
ITEM_NAME
과RARITY
는 테이블A
(ITEM_INFO
)에서 가져온 열입니다.
SELECT A.ITEM_ID, ITEM_NAME, RARITY
- FROM 절 및 JOIN:
ITEM_INFO
테이블을A
로,ITEM_TREE
테이블을B
로 별칭을 지정합니다.A.ITEM_ID
와B.ITEM_ID
가 같은 레코드를 조인합니다. 즉,ITEM_INFO
테이블과ITEM_TREE
테이블의ITEM_ID
가 일치하는 행을 결합합니다.
FROM ITEM_INFO AS A JOIN ITEM_TREE AS B ON A.ITEM_ID = B.ITEM_ID
- WHERE 절:
- 서브쿼리를 통해
ITEM_INFO
테이블에서RARITY
값이 'RARE'인 행들의ITEM_ID
를 선택합니다. - 그런 다음,
B.PARENT_ITEM_ID
가 이 서브쿼리 결과에 포함되는 행만 선택합니다. 즉,PARENT_ITEM_ID
가 'RARE' 등급의 아이템인 행들을 조회합니다.
WHERE B.PARENT_ITEM_ID IN (SELECT ITEM_ID FROM ITEM_INFO WHERE RARITY = 'RARE')
- ORDER BY 절:
A.ITEM_ID
를 기준으로 내림차순으로 정렬하여 결과를 반환합니다.
ORDER BY A.ITEM_ID DESC
Share article