두 개 이상의 테이블을 묶어서 하나의 결과물로 만드는 것.
Inner join
왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 표기.
Left outer join
왼쪽 테이블의 모든 행이 결과 테이블에 표시 (왼쪽 테이블에는 있는데 오른쪽 테이블에 없는 값은 null로 표시)
Right outer join
오른쪽 테이블의 모든 행이 결과 테이플에 표시 (오른쪽 테이블에는 있는데 왼쪽 테이블에 없는 값은 null로 표시)
Full outer join
두 테이블의 모든 행을 표시 (한쪽에는 없는 값은 null로 표시)
+) Nested loop의 효율성을 위해 테이블을 작은 블록으로 나눠 블록 단위로 조인하는 방법도 있음 (Block Nested Loop)
정렬 병합 조인 (Sort merge join)
각 테이블을 조인할 필드 기준으로 정렬한 후 조인 수행.
적절한 인덱스가 없고 대용량 테이블을 조인하거나 비교 연산자가 조인 조건일 때 사용됨.
해시 조인 (Hash join)
조인을 수행할 테이블의 조인 컬럼을 기준으로 해시 함수를 수행해 동일한 해시값을 가지는 것들끼리 비교.
해시 함수를 이용하여 조인하므로 ==(Equal) 조건을 적용할 때 사용가능.
해시 테이블을 메모리에 생성하므로 행의 수가 적은 테이블을 선행 테이블로 하는 것이 좋음.