1️⃣ JOIN (조인)
두 테이블의 행(Row)들을 연결하여 하나의 결과 집합을 만듦
두 테이블 간의 공통된 키(Foreign Key 또는 Primary Key)를 기반으로 데이터를 결합
결과는 여러 개의 컬럼(Column)으로 확장됨
✅ 예제
SELECT A.id, A.name, B.order_date
FROM Customers A
JOIN Orders B ON A.id = B.customer_id;
➡ Customers
테이블과 Orders
테이블을 customer_id
를 기준으로 조인
➡ 하나의 행(row)에서 두 테이블의 데이터를 합친 결과를 반환
2️⃣ UNION (유니온)
두 개 이상의 결과 집합을 위아래로 합침
각 SELECT의 컬럼 개수와 데이터 타입이 동일해야 함
기본적으로 중복된 데이터를 제거 (
UNION ALL
을 사용하면 중복 허용)
✅ 예제
SELECT name, email FROM Customers
UNION
SELECT name, email FROM Employees;
➡ Customers
와 Employees
테이블에서 같은 컬럼을 가져와 합침
➡ 두 테이블에서 공통된 name
, email
을 위아래로 합친 결과를 반환
➡ 중복 값은 제거됨 (UNION ALL
을 사용하면 중복 포함)
🔥 핵심 차이
JOIN | UNION | |
🔹 데이터 결합 방식 | 행(Row)들을 연결하여 확장 (가로 확장) | 결과 집합을 위아래로 추가 (세로 확장) |
🔹 테이블 수 | 최소 2개 이상의 테이블 필요 | 같은 컬럼 구조를 가진 여러 개의 SELECT 결과 |
🔹 중복 데이터 | 관계된 데이터만 결합 | UNION 은 중복 제거, UNION ALL 은 중복 포함 |
🔹 컬럼 개수 조건 | 각 테이블의 컬럼 개수 달라도 됨 | SELECT 절의 컬럼 개수와 데이터 타입이 같아야 함 |
🚀 비유로 이해하기
JOIN: 두 개의 테이블을 가로로 합쳐서 새로운 테이블을 만든다.
→ 🏠Customers
(고객 정보) + 📦Orders
(주문 정보) → 고객이 주문한 내역을 연결UNION: 같은 구조의 데이터를 위아래로 합친다.
→ 🏢서울 지점 직원 명단
+ 🏢부산 지점 직원 명단
→ 전체 직원 명단
✅ 정리
JOIN은 여러 테이블에서 관계를 맺고 데이터를 조합하는 데 사용
UNION은 같은 형식의 데이터를 한 줄씩 추가하여 합치는 데 사용