PostgreSQL의 JOIN 사용법
JOIN?
- 두개 이상의 테이블을 합치거나 정보를 조합할 때 사용하는 방법
- 여러개의 테이블을 Key 값을 기준으로 JOIN 구문을 사용하여 연결
[Join의 종류]
1) Inner Join
2) Outer Join - Left Join
3) Outer Join - Right Join
4) Outer Join - Full Join
5) Cross Join
[Join 기법]
🥕 Inner Join
- 조인하려는 각 테이블의 key 컬럼의 값이 일치하는 행만 조회
key 값을 기준으로 교집합에 해당하는 값들만 반환
🥕 Outer Join
- Left Join
- 왼쪽 테이블을 기준으로 key 컬럼의 값이 오른쪽 테이블에 존재하는 행 조회
단, 오른쪽 테이블에만 존재하는 레코드는 null을 반환
- Right Join
- Left Join과 동일하며 방향만 반대인 오른쪽 테이블 기준
- Full Join
- 두 개의 테이블에서 key 컬럼의 값이 일치하거나 한쪽에만 존재하는 행 조회
한쪽에만 존재하는 컬럼의 레코드는 null을 반환
🥕 Cross Join (or Cartesian)
-
양 쪽 테이블의 모든 레코드를 매치한 결과를 반환
단, 데이터의 양이 explosion 발생하기 때문에 가급적 사용을 지양한다.
예를 들어 한 쪽 테이블에 1000개 행, 다른 쪽에 500개 행이 있을 때, Cross Join으로 생성되는 총 레코드는 "1000 row X 500 row = 500,000 row"가 된다.
Reference