outer join시 on과 where

(。◠ ◠。)·2023년 8월 20일
0

정리 출처 : https://blog.leocat.kr/notes/2017/07/28/sql-join-on-vs-where

그냥 레프트 조인 시 결과

1. where절에서 조건추가 시 결과

SELECT *
FROM test1 a 
LEFT JOIN test2 b
ON a.aa = b.aa
WHERE b.cc = 7;

2. 0n절에서 조건 추가 시 결과

SELECT *
FROM test1 a LEFT JOIN test2 b
ON (a.aa = b.aa AND b.cc = 7);

sql select 실행 순서 (join)

FROM - > ON -> JOIN -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> ORDER BY

실행 순서에 따라 on을 한 결과를 두고 join을 하기 때문에
3번과 같이 cc가 7인 값과 left조인을 한 결과가 나온것이고

2번은 1번과같은 일반적인 left join 후에 where절을 적용시키기에 cc가 7인 값만 나온 것.

outer조인이 아닌 inner join

  • 합집합이기에 결과값은 같음....
profile
화이탱!

0개의 댓글