Join?
- 조인은 두 개 이상의 테이블을 연결하여 데이터를 탐색하는 방법이다. (대부분의 SQL에서는 JOIN을 사용, MongoDB의 경우엔 lookup 이라는 키워드 사용)
Inner Join
- 두 테이블에서 일치하는 데이터만 반환. (교집합)
- A, B 테이블을 Inner Join 하면 A, B 모두에 존재하는 데이터만 쿼리된다.
Outer Join
- 외부 조인은 Left Outer Join, Right Outer Join, Full Outer Join의 3가지 케이스가 있다.
Left Outer Join
- 첫 번째 테이블(왼쪽)과 두 번째 테이블(오른쪽)의 일치하는 레코드를 반환한다.
- 오른쪽 테이블에 일치하는 레코드가 없다면 왼쪽 테이블 레코드는 그대로 출력하고 오른쪽의 레코드는 NULL로 출력한다.
Right Outer Join
- 레프트 조인의 반대이다.
- 왼쪽 테이블에 일치하는 레코드가 없는 경우에는 NULL로 출력한다.
Full Outer Join
- 두 테이블의 모든 레코드를 반환한다.
- 한 테이블에만 존재하는 경우에는 나머지 테이블의 영역을 NULL로 출력한다.
Cross Join
- 두 개 이상의 테이블에서 가능한 모든 행의 조합을 생성하는 조인방법
- 두 테이블 간에 어떠한 조인 조건이 없을 때 사용. 두 테이블의 모든 행 간에 Cartesian product를 형성한다.
- 쓸 일이 잘 없긴 한데 테스트용으로 사용하거나 POC를 할 때 간혹 사용한다고 한다.
Natual Join
- 두 테이블 간에 동일한 이름을 가진 열이 있는 경우 자동으로 찾아서 Inner Join을 수행한다.
출처
CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조 - 큰돌