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

Kim Yuhyeon·2023년 10월 12일
0

SQL 

목록 보기
7/21

문제

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

접근 방법

테이블 2개 처리, 중복 제거 = DISTINCT가 중요하다.

풀이

1번째 풀이 : 오답

SELECT DISTINCT F.FLAVOR
FROM FIRST_HALF AS F, ICECREAM_INFO AS I
WHERE I.INGREDIENT_TYPE = "fruit_based" AND F.TOTAL_ORDER > 3000 
ORDER BY F.TOTAL_ORDER DESC
  • FROM절 다음에 조인에 대한 조건을 주지 않아서 카티션 곱이 되었다.

    카티션 곱

    • FROM 절에서는 두 개의 테이블을 명시하지만, WHERE 조인 조건을 주지 않는 경우
    • 두 테이블에 대해 가능한 모든 조합의 데이터가 조회된다.
  • 두 테이블 모두 FLAVOR라는 컬럼을 가지기 때문에 WHERE 절에서 두 테이블의 FLAVOR 값이 같은 경우를 조건으로 줘야한다.

2번째 풀이 : 정답

SELECT DISTINCT F.FLAVOR
FROM FIRST_HALF AS F, ICECREAM_INFO AS I
WHERE F.FLAVOR = I.FLAVOR AND I.INGREDIENT_TYPE = "fruit_based" AND F.TOTAL_ORDER > 3000 
ORDER BY F.TOTAL_ORDER DESC

참고

https://school.programmers.co.kr/questions/38612

0개의 댓글