컴퓨터/MySQL

MySQL (7) - JOIN에 대하여 알아보자

달서비 2023. 3. 2. 21:42

SQL 탐색에서 여러가지 테이블을 연동하여 사용하는 경우가 많습니다. 이때 사용하는 방법이 JOIN입니다. 이번에는 해당 방법에 대하여 알아보겠습니다.

 

한 번에 알아보는 JOIN의 종류

간단하게 집합 사진과 쿼리문을 정리하였습니다. 시간이 없으신 분들은 해당 부분의 쿼리문만 보셔도 됩니다.

벤다이어그램 소스 코드
SELECT *
FROM A a
     INNER JOIN B b
     ON a.KEY = b.KEY;

SELECT *
FROM A a
     LEFT OUTER JOIN B b
     ON a.KEY = b.KEY;
SELECT *
FROM A a
     LEFT OUTER JOIN B b
     ON a.KEY = b.KEY
WHERE b.KEY IS NULL;
SELECT *
FROM A a
     RIGHT OUTER JOIN B b
     ON a.KEY = b.KEY;
SELECT *
FROM A a
     RIGHT OUTER JOIN B b
     ON a.KEY = b.KEY;
WHERE a.KEY IS NULL;
SELECT *
FROM A a
     FULL OUTER JOIN B b
     ON a.KEY = b.KEY;
SELECT *
FROM A a
     FULL OUTER JOIN B b
     ON a.KEY = b.KEY;
WHERE a.KEY IS NULL;
     OR b.KEY IS NULL

 

예시로 사용하는 테이블의 컬럼은 아래와 같습니다.

A B
1 3
2 4
3 5
4 6

 

1. 내부 조인 Inner Join

SELECT *
FROM A a
	INNER JOIN B b
	ON a.KEY = b.KEY;

Inner Join을 실시하면 두 집합에 공통으로 있는 열이 출력됩니다.

A B
3 3
4 4

 

2. 외부 조인 Outer Join

Left Outer Join

SELECT *
FROM A a
     LEFT OUTER JOIN B b
     ON a.KEY = b.KEY;

Left Outer Join을 실시하면 A의 모든 열을 중심으로 출력합니다.

A B
1 NULL
2 NULL
3 3
4 4

 

Right Outer Join

Right Outer Join

SELECT *
FROM A a
     RIGHT OUTER JOIN B b
     ON a.KEY = b.KEY;

Right Outer Join을 실시하면 B의 모든 열을 중심으로 출력합니다.

 

A B
3 3
4 4
NULL 5
NULL 6

 

Full Outer Join

Full Outer Join

SELECT *
FROM A a
     FULL OUTER JOIN B b
     ON a.KEY = b.KEY;

Full Outer Join을 실시하면 A와 B의 합집합을 출력합니다.

A B
1 NULL
2 NULL
3 3
4 4
NULL 5
NULL 6

 

3. 셀프 조인 Self Join

Self Join

SELECT *
FROM A a
     LEFT OUTER JOIN A b
     ON a.KEY = b.KEY;

자기 자신을 조인합니다. 예를 들어 햄버거 가게의 메뉴 중 단품 메뉴와 세트 메뉴가 섞여 있는 구성인 경우 하나의 테이블을 사용하여야 합니다. 이런 경우 셀프 조인을 사용합니다. 

a b
1 1
2 2
3 3
4 4