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
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
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
SELECT *
FROM A a
LEFT OUTER JOIN A b
ON a.KEY = b.KEY;
자기 자신을 조인합니다. 예를 들어 햄버거 가게의 메뉴 중 단품 메뉴와 세트 메뉴가 섞여 있는 구성인 경우 하나의 테이블을 사용하여야 합니다. 이런 경우 셀프 조인을 사용합니다.
a | b |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
'컴퓨터 > MySQL' 카테고리의 다른 글
MySQL (9) - 내장함수를 이용하여 글자를 다뤄보자 (0) | 2023.03.16 |
---|---|
MySQL (8) - 기본키를 여러 개 두어야 할 때 (복합키) (0) | 2023.03.11 |
MySQL (6) - 무결성 제약조건 (0) | 2022.06.18 |
MySQL (5) - 테이블을 만져보자 (CREATE, ALTER, DROP) (0) | 2022.04.30 |
MySQL (4) - 데이터를 수정해보자 (Insert, Update, Delete) (0) | 2022.04.06 |