WHERE 조건절과 JOIN의 ON의 차이점은 JOIN하는 범위가 다르다.
예시
1. WHERE 절에 조건을 넣으면 t1과 t2 테이블을 그냥 조인하고, t2의 컬럼이 10 이상인것들만 출력한다.
# 1
SELECT *
FROM table t1 LEFT JOIN table2 t2 ON (t1.col = t2.col)
WHERE t2.col >= 10;
2. t1 테이블과 t2 테이블 중 col이 10 이상인 경우만 조인해서 출력한다.
# 2
SELECT *
FROM table t1 LEFT JOIN test2 t2
ON (t1.col = t2.col
AND t2.col >= 10);
ON : JOIN 하기 전 필터링을 한다 (=ON 조건으로 필터링이 된 레코들간 JOIN이 이뤄진다)
WHERE : JOIN 후 필터링을 한다 (=JOIN을 한 결과에서 WHERE 조건절로 필터링이 이뤄진다)
'🛠️Skill > SQL' 카테고리의 다른 글
[SQL문법] RANGE BETWEEN AND / UNBOUNDED PRECEDING / FOLLOWING (0) | 2023.04.08 |
---|---|
[SQL문법] UNION, UNION ALL / 친구가 가장 많은 사람 구하기 - 602. Friend Requests II (0) | 2023.01.17 |
[SQL문법] COALESCE : null이 아닌 첫번째 값 반환 (0) | 2023.01.10 |
[SQL문법] SET 변수 사용하기 / MySQL (0) | 2023.01.05 |
[SQL 문제] 요일별 매출액, 최초/마지막 주문일, 요일별 매출액 평균 (0) | 2022.12.15 |
댓글