DataBase/MySQL

[프로그래머스] 과일로 만든 아이스크림 고르기 - MySQL

Dev_en 2023. 2. 1. 19:15

문제 설명

아이스크림 가게의 상반기 주문 정보(출하 번호, 아이스크림 맛, 총주문량)를 담은 테이블과 아이스크림 정보(맛, 주성분)를 담은 테이블이 주어졌을 때,

상반기 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성하는 문제

https://school.programmers.co.kr/learn/courses/30/lessons/133025

 

프로그래머스

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

programmers.co.kr

  • 알고리즘 분류 - SELECT
  • 난이도 - Level 1

관련 개념

https://heestory0324.tistory.com/56

 

[SQL] FROM 콤마(,)와 INNER JOIN의 차이점

SQL에서 두 개 이상의 테이블을 동시에 다루고자 할 때, 콤마(,)와 inner join은 기능적으로 동일하다. 둘 다 Cartesian Product을 수행하기 때문이다. 즉, 첫번째 테이블의 모든 열은 두번째 테이블의 모

heestory0324.tistory.com


접근 방법

두 테이블을 JOIN 한 후 문제 조건 그대로 WHERE 절과 ORDER BY 절을 쓰면 된다.


답안 코드 1. 콤마(,) 사용

SELECT FIRST_HALF.FLAVOR
FROM FIRST_HALF, ICECREAM_INFO
WHERE FIRST_HALF.FLAVOR = ICECREAM_INFO.FLAVOR and ICECREAM_INFO.INGREDIENT_TYPE = 'fruit_based' AND FIRST_HALF.TOTAL_ORDER > 3000
ORDER BY FIRST_HALF.TOTAL_ORDER DESC

 

답안 코드 2. INNER JOIN 사용

SELECT FIRST_HALF.FLAVOR
FROM FIRST_HALF
INNER JOIN ICECREAM_INFO
ON FIRST_HALF.FLAVOR = ICECREAM_INFO.FLAVOR 
WHERE ICECREAM_INFO.INGREDIENT_TYPE = 'fruit_based' AND FIRST_HALF.TOTAL_ORDER > 3000
ORDER BY FIRST_HALF.TOTAL_ORDER DESC