본문 바로가기
SQL(데이터베이스)

10. SQL JOIN의 종류(테이블 붙이기)

by 아몰라코딩 2025. 3. 10.

테이블 붙이기(JOIN)

SQL JOIN의 종류

1. INNER JOIN (내부 조인)

  • 두 테이블 간에 공통된 값이 있는 행만 반환합니다.
  • 조건에 맞지 않는 행은 제외됩니다.

✅ 예제

sql

SELECT employees.name, departments.dept_name
FROM employees
INNER JOIN departments ON employees.dept_id = departments.dept_id;

결과:

→ employees 테이블과 departments 테이블에서 dept_id가 같은 행만 조회


2. LEFT JOIN (왼쪽 외부 조인)

  • 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블에서 일치하는 값이 있으면 포함합니다.
  • 오른쪽 테이블에 일치하는 값이 없으면 NULL이 반환됩니다.

✅ 예제

sql

SELECT employees.name, departments.dept_name
FROM employees
LEFT JOIN departments ON employees.dept_id = departments.dept_id;

결과:

→ employees의 모든 행을 반환하며, 일치하는 departments가 없으면 NULL 포함


3. RIGHT JOIN (오른쪽 외부 조인)

  • 오른쪽 테이블의 모든 행을 반환하고, 왼쪽 테이블에서 일치하는 값이 있으면 포함합니다.
  • 왼쪽 테이블에 일치하는 값이 없으면 NULL이 반환됩니다.

✅ 예제

sql

SELECT employees.name, departments.dept_name
FROM employees
RIGHT JOIN departments ON employees.dept_id = departments.dept_id;

결과:

→ departments의 모든 행을 반환하며, 일치하는 employees가 없으면 NULL 포함


4. FULL JOIN (전체 외부 조인)

  • 두 테이블의 모든 행을 반환하고, 일치하는 값이 있으면 결합합니다.
  • 일치하는 값이 없으면 NULL이 반환됩니다.

✅ 예제

sql

SELECT employees.name, departments.dept_name
FROM employees
FULL JOIN departments ON employees.dept_id = departments.dept_id;

결과:

→ employees와 departments의 모든 데이터를 반환하며, 일치하는 값이 없으면 NULL 포함


5. CROSS JOIN (교차 조인)

  • 두 테이블 간 **모든 가능한 조합(카테시안 곱)**을 반환합니다.
  • ON 조건 없이 단순히 두 테이블을 곱한 결과를 가져옵니다.

✅ 예제

sql

SELECT employees.name, departments.dept_name
FROM employees
CROSS JOIN departments;

결과:

→ employees의 모든 행과 departments의 모든 행을 조합하여 반환 (예: 직원이 5명, 부서가 3개라면 5×3=15개의 결과)


6. SELF JOIN (자기 조인)

  • 동일한 테이블을 자기 자신과 조인할 때 사용합니다.
  • 테이블을 두 번 사용하며, 서로 다른 별칭을 부여해야 합니다.

✅ 예제

sql

SELECT e1.name AS employee, e2.name AS manager
FROM employees e1
JOIN employees e2 ON e1.manager_id = e2.id;

결과:

→ 한 테이블 내에서 직원과 매니저 정보를 매칭하여 조회


📝 JOIN 선택 가이드

JOIN 종류 반환 데이터

JOIN 종류 반환 데이터
INNER JOIN 일치하는 데이터만 반환
LEFT JOIN 왼쪽 테이블 전체 + 일치하는 오른쪽 테이블 데이터
RIGHT JOIN 오른쪽 테이블 전체 + 일치하는 왼쪽 테이블 데이터
FULL JOIN 모든 데이터 (NULL 포함)
CROSS JOIN 모든 가능한 조합 반환
SELF JOIN 같은 테이블을 활용하여 자기 자신과 조인

🎯 정리

  • INNER JOIN → 일치하는 데이터만 가져옴
  • LEFT JOIN → 왼쪽 테이블을 기준으로 모든 데이터 반환
  • RIGHT JOIN → 오른쪽 테이블을 기준으로 모든 데이터 반환
  • FULL JOIN → 두 테이블의 모든 데이터 반환
  • CROSS JOIN → 두 테이블의 모든 조합 반환
  • SELF JOIN → 동일한 테이블을 조인하여 관계 조회