join의 on과 where

codakcodak·2024년 2월 20일
0

Mysql

목록 보기
4/11

차이점

  • on과 where에 따라서 join의 범위가 달라진다.
  • on에 where에 쓰일 조건을 함께 주면 조건을 만족하는 행만 채워진다.(빈부분은 null)
  • on후에 where 조건을 준다면 최종적으로 결합된 행들에서 필터링 된다.

예시 테이블

where조건을 포함한 on

SELECT *
FROM test1 a LEFT JOIN test2 b
ON (a.aa = b.aa)
WHERE b.cc = 7; --모든 것을 join 후 최종적인 행에서 필터링

결과

1 | 4 | 1 | 7

where 따로 준 on

1.left join

SELECT *
FROM test1 a LEFT JOIN test2 b
ON (a.aa = b.aa AND b.cc = 7); --b.cc가 7인 행들만 join 시키고 나머진 null로 fill

결과

1 | 4 | 1    | 7
2 | 5 | null | null
3 | 6 | null | null

2.join

SELECT *
FROM test1 a JOIN test2 b
ON (a.aa = b.aa AND b.cc = 7); --where로 최종적으로 필터링 했을때와 동일하게 출력

결과

1 | 4 | 1    | 7
profile
숲을 보는 코더

0개의 댓글