티스토리 뷰

 

공통점

둘 다 JOIN을 위한 조건절로 쓰인다.

 

 

차이점

ON - JOIN이 실행되기

WHERE - JOIN이 실행된

 

 

SQL문 순서

 


예시1. ON

 

JOIN에 우선 이름으로 테이블을 연결한 뒤

AND t2.몸무게 = 50 이라는 조건을 준 상황이다.

 

ON은 JOIN이 되기 전에 실행되므로

간단하게 보면 1번과 3번의 LEFT JOIN이 된 것처럼 보이는 것이다.

 

나머지 B, C의 몸무게는 NULL값을 가진다.

 

 

 

 

 

예시2. WHERE

 

WHERE은 JOIN이 실행된 후 적용된다.

우선 가운데 회색 테이블은 이름을 기준으로 t1과 t2를 JOIN한 것이다.

 

여기서 WHERE 조건으로 t2의 몸무게가 50인 데이터만 필터링 하면

맨 오른쪽 하나의 행만 있는 테이블이 보여지게 된다.

 

 

 

 

 

 

이렇게 결과로만 봐도 확연히 다른 것을 볼 수 있다.