728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/273711
정답 코드
-- ITEM_INFO 테이블을 PARENT 별칭으로 선택합니다.
SELECT CHILD.ITEM_ID, CHILD.ITEM_NAME, CHILD.RARITY
-- CHILD.ITEM_ID, CHILD.ITEM_NAME, CHILD.RARITY 열을 선택합니다.
FROM ITEM_INFO AS PARENT
-- ITEM_TREE 테이블을 IT 별칭으로 조인합니다.
JOIN ITEM_TREE AS IT ON IT.PARENT_ITEM_ID = PARENT.ITEM_ID
-- ITEM_INFO 테이블을 CHILD 별칭으로 다시 조인합니다.
JOIN ITEM_INFO AS CHILD ON IT.ITEM_ID = CHILD.ITEM_ID
-- 부모 아이템의 RARITY가 'RARE'인 행을 필터링합니다.
WHERE PARENT.RARITY = 'RARE'
-- CHILD.ITEM_ID를 기준으로 내림차순으로 결과를 정렬합니다.
ORDER BY CHILD.ITEM_ID DESC;
/*
첫 번째 JOIN 후
PARENT.ITEM_ID | PARENT.ITEM_NAME | PARENT.RARITY |
---------------------------------------------------
0 | ITEM_A | RARE
0 | ITEM_A | RARE
1 | ITEM_B | RARE
1 | ITEM_B | RARE
# JOIN 안쓰는 법
SELECT CHILD.ITEM_ID, CHILD.ITEM_NAME, CHILD.RARITY
FROM ITEM_INFO PARENT, ITEM_TREE IT, ITEM_INFO CHILD
WHERE PARENT.RARITY = 'RARE'
AND PARENT.ITEM_ID = IT.PARENT_ITEM_ID
AND CHILD.ITEM_ID = IT.ITEM_ID
ORDER BY CHILD.ITEM_ID DESC;
728x90
반응형
'Problem Solving > 프로그래머스' 카테고리의 다른 글
[MySQL] 프로그래머스 273710. ROOT 아이템 구하기 (0) | 2024.02.21 |
---|---|
[MySQL] 프로그래머스 131114. 경기도에 위치한 식품창고 목록 출력하기 (0) | 2024.02.21 |
[MySQL] 프로그래머스 131537. 오프라인/온라인 판매 데이터 통합하기 (0) | 2024.02.20 |
[MySQL] 프로그래머스 131537. 오프라인/온라인 판매 데이터 통합하기 (0) | 2024.02.20 |
[MySQL] 프로그래머스 131536. 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2024.02.20 |