[SQL] join할때 on 과 where의 차이

건너별·2022년 4월 16일
4

SQL

목록 보기
12/14

핵심🧐

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

profile
romantic ai developer

1개의 댓글

comment-user-thumbnail
2024년 1월 25일

온절 명령어에서
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 = '일';
이부분은 삭제되어야 하는 것 아닌가요?

답글 달기