1. Join
- 여러 테이블의 데이터를 조인 조건에 따라 결합하여 하나의 결과 집합을 생성하는 연산
- ✅ 정규화로 나뉜 테이블의 데이터를 함께 조회하기 위해 사용
성능
- DB는 조인 순서에 따라 테이블을 읽고 결과를 결합하며 조인을 수행
- ➡️ 작은 테이블부터 읽는것이 성능상 유리함 (반복 탐색 횟수가 줄어듬)
2. 종류
| 구분 | 설명 | 조인 조건 | 특징 |
| INNER JOIN | 두 테이블에 공통으로 존재하는 데이터만 조회 | ✅ | 가장 일반적인 JOIN |
| LEFT JOIN | 왼쪽 테이블 기준으로 모든 데이터 조회 | ✅ | 오른쪽 테이블에 매칭 없으면 NULL |
| RIGHT JOIN | 오른쪽 테이블 기준으로 모든 데이터 조회 | ✅ | 왼쪽 테이블에 매칭 없으면 NULL |
| CROSS JOIN | 두 테이블의 모든 조합 생성 (Cartesian Product) | ❌ | 결과 행 수 = A×B |
| SELF JOIN | 같은 테이블끼리 조인 | ❌ | 계층 구조 조회 시 사용 |
| NATURAL JOIN | 같은 이름 컬럼 자동 조인 | ❌ | 자동으로 INNER JOIN 수행 |
예시) INNER JOIN
더보기
SELECT o.order_id, c.name
FROM orders o
INNER JOIN customers c ON c.id = o.customer_id;
예시) LEFT JOIN
더보기
SELECT u.id, o.order_id
FROM users u
LEFT JOIN orders o ON o.user_id = u.id;
예시) RIGHT JOIN
더보기
SELECT *
FROM A
RIGHT JOIN B ON A.id = B.a_id;
예시) CROSS JOIN
더보기
SELECT d.dt, p.product_id
FROM dates d
CROSS JOIN products p;
예시) SELF JOIN
더보기
SELECT e.name AS employee, m.name AS manager
FROM employees e
LEFT JOIN employees m ON m.id = e.manager_id;
예시) NATURAL JOIN
더보기
SELECT *
FROM A
NATURAL JOIN B;
'Database > Mysql' 카테고리의 다른 글
| [MySQL][SQL] 2-2. DML: Inner Function (Single Row) (0) | 2026.03.04 |
|---|---|
| [MySQL][SQL] 2. DML (0) | 2026.03.04 |
| [MySQL][SQL] 1. DDL (0) | 2026.03.03 |
| [Real MySQL] 4-2. 아키텍쳐: InnoDB 스토리지 엔진 아키텍쳐 (2) (6) | 2025.06.08 |
| [업무에 바로 쓰는 SQL 튜닝] 5. 악성 SQL 튜닝으로 전문가 되기 (0) | 2025.03.19 |