개발자로 후회없는 삶 살기

[문법] JOIN ON과 where의 차이 본문

[백엔드]/[DB | 학습기록]

[문법] JOIN ON과 where의 차이

몽이장쥰 2023. 6. 9. 19:43

서론

join이 일어나는 유형에서 on과 where의 차이를 알아봅니다. 조인할 때 어떤 테이블을 먼저 검색하느냐에 따라 DB 조회 성능에 큰 영향을 주므로 잘 알아둬야 합니다.

 

본론

- 이너조인

테이블을 옆으로 붙이는 것을 조인이라고 합니다. emp의 fk 데이터인 deptId의 1, 3과 dept의 pk 데이터에 1, 3을 맞춰서 기준 컬럼(deptId)의 공통 속성을 통해 행이 옆으로 연결됩니다.

 

1. inner join + on

 

 

2. inner join + where

이너 조인은 on을 쓰나 where을 쓰나 결과가 같습니다. 조건이 있는 테이블에 먼저 조건을 수행하여 emp 테이블에서 1행을 찾고 전체 dept 테이블과 이너 조인을 하게 됩니다.

 

3. join + using

기준 컬럼의 이름이 같을 때 using을 쓰면 중복되는 컬럼 없이 한 개만 출력합니다.

 

- 아우터 조인

1. outer join + on

아우터 조인을 on과 같이 쓰면 on의 조건절인 e.empid = 1이 먼저 수행되어 

 

emp의 1행과 dept 전체를 아우터 조인하는 개념으로 조인보다 조건절을 먼저 수행합니다.

 

2. outer join + where

where와 사용하면 

 

join을 먼저 수행하여 4행이 나온 결과 테이블에 where을 수행하게 됩니다. 조인을 먼저하고 조건절을 수행합니다.

Comments