https://school.programmers.co.kr/learn/courses/30/lessons/133025
테이블 2개 처리, 중복 제거 = DISTINCT가 중요하다.
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 값이 같은 경우를 조건으로 줘야한다.
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