본문 바로가기
🛠️Skill/SQL

[SQL문법] WHERE 조건절과 JOIN의 ON의 차이점

by Istj_eff 2023. 3. 9.

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 조건절로 필터링이 이뤄진다)

 

댓글