Open jinsusong opened 1 year ago
[ON vs WHERE] ON: JOIN 을 하기 전 필터링을 한다 (=ON 조건으로 필터링이 된 레코들간 JOIN이 이뤄진다) -> join의 조건 WHERE : JOIN 을 한 후 필터링을 한다 (=JOIN을 한 결과에서 WHERE 조건절로 필터링이 이뤄진다)
MySQL에서 JOIN 을 사용할때에 USING 이나 ON 을 사용한다.
SELECT
*
FROM
employees e INNER JOIN salaries s USING(emp_no)
WHERE
e.emp_no BETWEEN 100002 AND 100020
ORDER BY e.emp_no;
employees 와 salaries 를 조인(JOIN)하는데 emp_no 를 키가 양쪽 테이블에 모두 있기 때문에 USING 을 사용할 수 있다. 하지만 만일 조인시에 컬럼 이름이 다를 경우에는 ON 을 사용한다. 물론, 컬럼 이름이 같은 것을 기반을 조인을 할때도 ON 을 상용해도 된다.
outer 조인 예시) https://myjamong.tistory.com/229
요약) where을 쓰면 데이터가 없는 결과는 출력을 안하고, on을 쓰면 데이터가 없는 결과도 출력함(조건을 처리하고 join하기 때문에)
https://velog.io/@crosstar1228/SQL-join할때-on-과-where의-차이