🤔 문제
다음은 아이스크림 가게의 상반기 주문 정보를 담은 `FIRST_HALF` 테이블과 아이스크림 성분에 대한 정보를 담은 `ICECREAM_INFO` 테이블입니다. `FIRST_HALF` 테이블 구조는 다음과 같으며, `SHIPMENT_ID`, `FLAVOR`, `TOTAL_ORDER`는 각각 아이스크림 공장에서 아이스크림 가게까지의 출하 번호, 아이스크림 맛, 상반기 아이스크림 총주문량을 나타냅니다. `FIRST_HALF` 테이블의 기본 키는 `FLAVOR` 입니다.
`ICECREAM_INFO` 테이블 구조는 다음과 같으며, `FLAVOR`, `INGREDIENT_TYPE`은 각각 아이스크림 맛, 아이스크림의 성분 타입을 나타냅니다. `INGREDIENT_TYPE`에는 아이스크림의 주 성분이 설탕이면 `sugar_based`라고 입력되고, 아이스크림의 주 성분이 과일이면 `fruit_based`라고 입력됩니다.
`ICECREAM_INFO`의 기본 키는 `FLAVOR` 입니다. `ICECREAM_INFO`테이블의 `FLAVOR`는 `FIRST_HALF`테이블의 `FLAVOR`의 외래 키 입니다.
상반기 아이스크림 총 주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총 주문량이 큰 순서대로 조회하는 SQL문을 작성해주세요.
예시
예를 들어 `FIRST_HALF` 테이블이 다음과 같고
`ICECREAM_INFO` 테이블이 다음과 같다면
상반기 아이스크림 총주문량이 3,000보다 높은 아이스크림 맛은 chocolate, strawberry, melon, white_chocolate입니다. 이 중에 아이스크림의 주 성분이 과일인 아이스크림 맛은 strawberry와 melon이고 총 주문량이 큰 순서대로 아이스크림 맛을 조회하면 melon, strawberry 순으로 조회되어야 합니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.
💻 나의 풀이
SELECT F.FLAVOR
FROM FIRST_HALF F
INNER JOIN ICECREAM_INFO I ON F.FLAVOR = I.FLAVOR
WHERE F.TOTAL_ORDER > 3000
AND I.INGREDIENT_TYPE = 'fruit_based'
ORDER BY F.TOTAL_ORDER DESC;
결과
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/001.gif)
질문
Q. PK를 공유하고 있는 두개의 테이블에서 해당 PK를 SELECT할 경우에,
SELECT문에서도 `별칭.컬럼명` 으로 반드시 써야하는 건가요?
어짜피 동일한 컬럼명인데 별칭을 쓰지 않으면 안되는건가요?
만약에 써야하면 FROM절에 있는 베이스 테이블을 써야하는지, JOIN절 이후에 있는 조인 테이블을 써야하는지 궁금합니다.
혹시 이 글을 보신 전문가분들 답변해주세요!
![](https://t1.daumcdn.net/keditor/emoticon/niniz/large/046.gif)
'취업준비 > 코딩테스트 문제 풀이' 카테고리의 다른 글
[프로그래머스 SQL 고득점 Kit] SELECT - 강원도에 위치한 생산공장 목록 출력하기 (0) | 2024.03.29 |
---|---|
[프로그래머스 SQL 고득점 Kit] SELECT - 인기있는 아이스크림 (0) | 2024.03.28 |
[프로그래머스 SQL 고득점 Kit] SELECT - 조건에 맞는 도서 리스트 출력하기 (0) | 2024.03.28 |
[프로그래머스 SQL 고득점 Kit] SELECT - 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2024.03.28 |
[프로그래머스 SQL 고득점 Kit] SELECT - 12세 이하인 여자 환자 목록 출력하기 (1) | 2024.03.28 |