알고리즘 문제/프로그래머스

프로그래머스 업그레이드 된 아이템 구하기 [Lv. 2] (MySQL)

우대비 2024. 10. 21. 22:39
반응형
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

ITEM_INFO, ITEM_TREE 테이블이 있을 때 아이템의 희귀도가 RARE인 아이템의 다음 업그레이드 아이템의 ITEM_ID, ITEM_NAME, RARITY를 조회해주세요

 

 

 

SELECT A.ITEM_ID, A.ITEM_NAME, A.RARITY
FROM ITEM_INFO A
INNER JOIN ITEM_TREE B
ON B.ITEM_ID = A.ITEM_ID
WHERE B.PARENT_ITEM_ID IN (SELECT ITEM_ID FROM ITEM_INFO WHERE RARITY = 'RARE')
ORDER BY A.ITEM_ID DESC

 

 

SELECT A.ITEM_ID, A.ITEM_NAME, A.RARITY

ITEM_INFO 테이블(A)에서 ITEM_ID, ITEM_NAME, 그리고 RARITY 컬럼을 선택합니다. 

 

FROM ITEM_INFO A
INNER JOIN ITEM_TREE B
ON B.ITEM_ID = A.ITEM_ID

ITEM_INFO 테이블(A)과 ITEM_TREE 테이블(B)를 INNER JOIN으로 결합합니다.

  • ITEM_ID 컬럼을 기준으로 두 테이블의 데이터가 일치하는 행들만 반환합니다.
  • 즉, 아이템 정보(ITEM_INFO)와 아이템의 상하관계(ITEM_TREE)를 연결해 각 아이템의 상세 정보와 트리 구조를 매핑합니다.
WHERE B.PARENT_ITEM_ID IN (
    SELECT ITEM_ID FROM ITEM_INFO WHERE RARITY = 'RARE'
)

ITEM_TREE 테이블의 PARENT_ITEM_IDITEM_INFO 테이블에서 RARITY가 'RARE'인 아이템의 ID 일때만 결과에 포함합니다.

 

 

반응형
LIST