🤞Join
Join
: 둘 이상의 테이블을 연결하여 하나의 결과를 만들어내는 것
- 연결하고자 하는 테이블들이 적어도 하나의 컬럼을 공유하고 있어야 한다.
- 공유하는 컬럼을 PK or FK 값으로 사용한다.
➡️ 두 테이블의 조인을 위해서는 기본키(PK)와 외래키(FK) 관계로 맺어져야 한다.
Join의 종류
- INNER JOIN
- LEFT OUTER JOIN
- RIGHT OUTER JOIN
- FULL OUTER JOIN
- CROSS JOIN
- SELF JOIN
1. INNER JOIN
- 교집합
- 기준 테이블과 join 테이블의 중복된 값을 보여준다.
- 두 테이블에 모두 지정한 열의 데이터가 있어야 한다.
SELECT A.ID, A.ENAME, A.KNAME
FROM A INNER JOIN B
ON A.ID = B.ID;
2. LEFT (OUTER) JOIN
- JOIN 기준 왼쪽에 있는 테이블 모두 SELECT 된다.
- 공통 부분 + 왼쪽 테이블 데이터
SELECT A.ID, A.ENAME, A.KNAME
FROM A LEFT OUTER JOIN B
ON A.ID = B.ID;
3. RIGHT OUTER JOIN
- JOIN 기준 오른쪽에 있는 테이블 모두 SELECT 된다.
- 공통 부분 + 오른쪽 테이블 데이터
SELECT A.ID, A.ENAME, A.KNAME
FROM A RIGHT OUTER JOIN B
ON A.ID = B.ID;
4. (FULL) OUTER JOIN
- 합집합
- A 테이블의 데이터, B 테이블의 데이터 모두 SELECT
SELECT A.ID, A.ENAME, A.KNAME
FROM A FULL OUTER JOIN B
ON A.ID = B.ID;
5. CROSS JOIN
- 모든 경우의 수를 전부 표현하는 방식
- A 테이블의 데이터가 3개, B 테이블의 데이터가 4개인 경우, 총 3 * 4 = 12개의 데이터가 검색된다.
- 대개 테스트로 사용할 대용량의 테이블을 생성할 경우에 사용된다.
SELECT A.ID, A.ENAME, A.KNAME
FROM A
CROSS JOIN B
‼️ CROSS JOIN
은 상호 모든 행에 대한 결합이 발생하는 것이므로, ON
구문을 사용할 수 없다.
6. SELF JOIN
- 자기 자신과 조인하는 것
- 하나의 테이블을 여러번 복사하여 조인하는 것과 같다.
자신이 갖고 있는 컬럼을 다양하게 변형시켜 활용할 때 자주 사용한다.
- Output의 Manager는 모두 Input 데이터로부터 나온 것이다.
➡️ 테이블내 동일한 값이 다른 의미를 갖는 경우(다른 컬럼에 존재하는 경우) 두 테이블을 서로 SELF JOIN시켜 정보를 확인할 수 있다.
Reference