▶ study/SQL
[SQL심화] join에서 on 과 where 조건절 차이
친절한 3
2021. 4. 15. 10:27
SQL join에서 on에도 조건을 줄 수 있고, where절에도 조건을 줄 수 있다. 이때, 얼핏 보기엔 두 경우의 결과에 별 차이가 없어보인다. 하지만, on에서의 조건과 where절에서의 조건에는 약간의 차이가 있다. 이 차이를 명확히 짚고 넘어가부자.
코드로 보면 아래와 같다.
1)
select *
from student a, dept b
where a.id = b.id
and a.name = b.name
and a.id = '1001';
2)
select *
from student a join dept b
on a.id = b.id
and a.name = b.name
and a.id ='1001';
1) 쿼리같은 경우,
조인을 실행한 뒤 -> 조인결과로 생성된 테이블에서 id가 1001인 행들을 검색한다.
2) 쿼리같은 경우
조인 실행 시, a.id가 1001인 테이블과 b테이블을 조인한다.
-> 결과적으론 같은 결과가 나오지만 join절차적인 면에서 차이가 있다. 1쿼리는 나중에 조건을 걸어주는 방식이고, 2쿼리의 경우엔 이미 원하는 테이블을 뽑은 뒤, 그 테이블을 가지고 조인을 이루는 것이다. 성능적인 면에서 봤을 땐 2쿼리가 훨씬 용량을 덜 차지할 것이다. 왜냐하면 미리 조건을 걸어줘서 join연산에 들어가는 용량을 줄여줬기때문에!!!!!!