문법 예제
SELECT order_items.id, orders.order_date, order_items.price
FROM order_items
LEFT OUTER JOIN orders
ON order_items.order_id = orders.id;
조인(JOIN)은 두 개 이상의 테이블 간에 관련된 열을 기준으로 행을 결합합니다.
조인 시각화
SELECT * FROM `A` INNER JOIN `B`
┌────────┐
│ A ┌───┼────┐
│ │ ∩ │ │
└────┼───┘ B │
└────────┘
| 조인 유형 | 포함 데이터 | 설명 |
|---|---|---|
INNER JOIN |
∩ |
두 테이블 모두에서 값이 일치하는 레코드를 반환 |
LEFT OUTER JOIN |
A + ∩ |
테이블 A의 모든 레코드와 테이블 B의 일치하는 레코드를 반환 |
RIGHT OUTER JOIN |
∩ + B |
테이블 B의 모든 레코드와 테이블 A의 일치하는 레코드를 반환 |
FULL OUTER JOIN |
A + ∩ + B |
왼쪽 또는 오른쪽 테이블 중 하나라도 일치하면 모든 레코드를 반환 |
조인 변형 및 필터
교집합을 제외한 Left Join
SELECT * FROM A
LEFT JOIN B ON A.key = B.key
WHERE B.key IS NULL;
교집합을 제외한 Right Join
SELECT * FROM A
RIGHT JOIN B ON A.key = B.key
WHERE A.key IS NULL;
교집합을 제외한 Full Outer Join
SELECT * FROM A
FULL OUTER JOIN B ON A.key = B.key
WHERE A.key IS NULL OR B.key IS NULL;