두 개의 테이블을 엮어서 원하는 데이터를 추출할 수 있게 함.
내부 조인 = 교집합
select column1
from table1
(inner) join table2
on table1.column2 = table2.column2;
외부 조인 = 합집합 (left와 right는 부분집합)
한쪽에만 데이터가 있어도 결과가 나옴.
⇒ 한쪽을 기준으로 테이블을 합침.
select column1
from table1
<left | right | full> outer join table2
on table1.column2 = table2.column2;
+) 변형
[A-B: 공통부분을 제외한 A]
select a.id, a.name
from a
left outer join b
on a.id = b.id
where b.id is null;
[B-A: 공통부분을 제외한 B]
select a.id, a.name
from a
right outer join b
on a.id = b.id
where a.id is null;
상호 조인 = 카티션 곱(Cartesian product)
한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인시키는 기능
전체 행 개수는 두 테이블의 각 행의 개수를 곱한 수만큼 됨.
select *
from table1
cross join table2;
자체 조인
자기 자신을 조인하므로 1개의 테이블을 사용함.
select *
from table1 a
inner join table2 b;