개인적으로 공부하면서 기록하는 공간으로
잘못된 정보는 댓글을 통해 알려주시면 감사하겠습니다 :-)
▪ ▪ ▪ ▪ ▪
Join 이란?
Join 이란 한 데이터베이스 내의 여러 테이블의 레코드를 조합하여 하나의 테이블인 것 처럼 표현한 것이다.
각 테이블에서의 공통값을 이용함으로써 필드를 조합하게 되고, 공통값으로는 주로 기본키(Primary Key)와 외래키(Foreign Key)가 사용된다.
INNER JOIN
- 애플리케이션에서 사용되는 가장 흔한 결합 방식이며, 기본 조인 형식입니다.
- 조인 구문에 기반한 테이블의 컬럽 값을 결합하여, 테이블 A와 테이블 B의 중복된 값을 보여줍니다.
형식)
SELECT * -- 조회할 컬럼명
FROM TABLE1 AS A
INNER JOIN TABLE2 AS B ON A.TABLE1기준키 = B.TABLE2기준키
LEFT OUTER JOIN / RIGHT OUTER JOIN
- LEFT OUTER JOIN은 왼쪽 테이블을 기준으로, RIGHT OUTER JOIN은 오른쪽 테이블을 기준으로 JOIN 된다.
- LEFT OUTER JOIN과 RIGHT OUTER JOIN은 기능적으로 동일하여 테이블 순서를 변경하면 서로 대체할 수 있다.
형식)
SELECT * -- 조회할 컬럼명
FROM TABLE1 AS A
LEFT(RIGHT) OUTER JOIN TABLE2 AS B ON A.TABLE1기준키 = B.TABLE2기준키
FULL OUTER JOIN
- 테이블 A와 테이블 B가 가진 데이터를 모두 준다
- 일부 데이터베이스 시스템에서는 FULL OUTER JOIN 기능을 지원하지 않아, union all 또는 select 를 사용하여 비슷하게 구현할 수 있다.
형식)
SELECT * -- 조회할 컬럼명
FROM TABLE1 AS A
FULL OUTER JOIN TABLE2 AS B ON A.TABLE1기준키 = B.TABLE2기준키
CROSS JOIN
- CROSS JOIN 절은 조인되는 두 테이블의 곱집합을 반환한다. (모든 경우의 수 표현)
- M행을 가진 테이블과 N행을 가진 테이블이 CROSS JOIN 하게 되면 M*N개의 행을 생성한다.
형식)
SELECT *
FROM TABLE1 CROSS JOIN TABLE2
SELF JOIN
- SELF JOIN은 한 테이블에서 자기 자신에 조인시키는 것을 말한다.
- 동일 테이블 JOIN 하면 테이블과 컬럼명이 모두 동일하기 때문에 식별을 위해 반드시 alias를 사용해야 한다.
형식)
SELECT *
FROM TABLE1 AS A
INNER JOIN TABLE1 AS B ON A.기준컬럼명 = B.기준컬럼명
Reference
✔ https://ko.wikipedia.org/wiki/Join_(SQL)