[SQL] join할때 on 과 where의 차이
핵심🧐
on
: join 전에 조건을 필터링
where
: join 후에 조건을 필터링
그게 왜?🤔
- inner join 하면 둘다 차이 없음
- outer join 시 on으로 해야 원하는 결과를 얻을 수 있음(outer table에 null값 포함하여 행들이 다 살아있는 상태)
on 명령어
SELECT t1.col1, t1.col2, t2.col1, t2.col2
FROM table1 t1
LEFT OUTER JOIN table2 t2
ON t1.col1 = t2.col1
AND t2.col2 = '일';
- on 명령어로 join 전에 조건을 걸어줌.
- t1 값들이 살아있음
where 명령어
select t1.col1, t1.col2, t2.col1, t2.col2
from table1 t1
LEFT OUTER JOIN table2 t2
ON t1.col1 = t2.col1
where t2.col2 = '일';
- join 및 모든 조건이 끝나고 where로 추가 조건을 걸어준 느낌으로 받아들이면 됨.
Reference
Author And Source
이 문제에 관하여([SQL] join할때 on 과 where의 차이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@crosstar1228/SQL-join할때-on-과-where의-차이저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)