본문 바로가기

카테고리 없음

MySQL Join할 때 where, on 차이


사실 where 절과 on은 조건을 명시할 때 사용하는 것으로 용도는 같은데, dbms마다 사용하는 올바른 정책이 조금씩 다른 것 같다. 

먼저, join을 이용할 때 두 테이블을 그냥 쉼표로 연결했을 때는 일반적인 쿼리처럼 where절을 이용해도 된다. 


그런데 아래처럼 inner join 등 조인의 종류를 명시할 때는 on절을 이용하는게 일반적인 것 같다.
표준이 아니라 일반적이라고 말한 이유는 아래 쿼리 처럼 where 절을 이용해도 에러없이 쿼리 수행이 되기 때문이다.


반면에 두 테이블을 join할 때 쉼표를 이용했을때는 where절로만 조건을 명시할 수 있고 on을 사용하면 쿼리 syntax error가 나게된다.