조인 (Join)
조인(join)은 하나의 쿼리로 두 개 이상의 테이블을 묶어서 불러오는 것을 말한다.
Join은 크게 inner, left, right, outer join으로 나뉜다.
INNER JOIN
두 개의 테이블 간의 교집합을 나타낸다.
A 테이블과 B 테이블에서 조건을 만족하는 row만 조회한다.
SELECT * FROM TableA A
INNER JOIN TableB B ON
A.key = B.key
LEFT OUTER JOIN
왼쪽 테이블 A를 기준으로 오른쪽 테이블 B의 일치하는 부분의 레코드와 함께 출력된다.
만약 테이블 B에 일치하는 항목이 없으면 해당 값은 null로 출력된다.
A 테이블의 데이터가 모두 출력되지만,
조건에 만족하는 경우 B 테이블의 데이터도 출력되고,
조건에 만족하지 않는 경우 B 테이블 부분은 null로 출력된다.
SELECT * FROM TableA A
LEFT JOIN TableB B ON
A.key = B.key
LEFT JOIN (차집합)
테이블 B의 데이터가 존재하지 않는 테이블 A의 데이터를 모두 불러온다.
SELECT A.* FROM TableA A
LEFT JOIN TableB B ON A.key = B.key
WHERE B.KEY IS NULL;
RIGHT OUTER JOIN
오른쪽 테이블 B를 기준으로 왼쪽 테이블 A의 일치하는 부분의 레코드와 함께 출력된다.
만약 테이블 A에 일치하는 항목이 없으면 해당 값은 null로 출력된다.
B 테이블의 데이터가 모두 출력되지만,
조건에 만족하는 경우 A 테이블의 데이터도 출력되고,
조건에 만족하지 않는 경우 A 테이블 부분은 null로 출력된다.
SELECT * FROM TableA A
RIGHT JOIN TableB B ON
A.key = B.key
RIGHT JOIN (차집합)
A 테이블의 데이터가 존재하지 않는 B 테이블의 데이터를 모두 불러온다.
SELECT B.* FROM TableA A
RIGHT JOIN TableB B ON A.key = B.key
WHERE A.key IS NULL;
FULL OUTER JOIN
왼쪽 테이블과 오른쪽 테이블의 데이터가 모두 출력된다.
각각 조건에 만족하지 않는 부분은 null로 반환되고, 중복은 제외된다.
SELECT * FROM TableA A
FULL OUTER JOIN TableB B ON
A.key = B.key
반응형
'Database > SQL' 카테고리의 다른 글
[SQL / Database / SQLD] 함수모음_문자, 숫자, 날짜 (Part2 - Ch01) (0) | 2024.04.25 |
---|---|
[SQL/MariaDB] ALTER TABLE 명령어 정리 (0) | 2023.07.27 |
[SQL/MySQL] SELECT 데이터 조회 (0) | 2023.04.25 |
[SQL/MariaDB] 데이터 추가, 수정, 삭제 (INSERT, UPDATE, DELETE) (0) | 2023.04.20 |
[SQL/MariaDB] Constraints / Table 생성하기 (0) | 2023.04.20 |