Database/Mysql

[MySQL][SQL] 6. Join

noahkim_ 2026. 3. 4. 22:06

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;