[SQL 문제 풀기] 업그레이드 된 아이템 구하기

화낼거양's avatar
Nov 28, 2024
[SQL 문제 풀기] 업그레이드 된 아이템 구하기
Contents
문제정답
 
 
 

문제

notion image
notion image
 
 

정답

 
 
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;
 
 
 

쿼리 설명

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

moohyun