[SQL] INNER JOIN vs OUTER JOIN 차이 및 활용법
1. JOIN이란?
SQL에서 JOIN은 **두 개 이상의 테이블을 결합하여 데이터를 조회하는 방식**입니다.
특히, INNER JOIN과 OUTER JOIN은 자주 사용되는 유형이며, 데이터 조회 방식이 다릅니다.
2. INNER JOIN vs OUTER JOIN 비교
구분 | INNER JOIN | OUTER JOIN |
결합 방식 | 두 테이블에서 **일치하는 데이터만 반환** | 일치하지 않는 데이터도 포함 |
NULL 처리 | 일치하지 않는 데이터는 반환되지 않음 | 일치하지 않는 데이터도 NULL 값을 포함하여 반환 |
종류 | INNER JOIN | LEFT JOIN, RIGHT JOIN, FULL JOIN |
3. INNER JOIN 예제
✅ INNER JOIN을 사용한 고객 & 주문 데이터 조회
SELECT customers.customer_id, customers.name, orders.order_id, orders.amount
FROM customers
INNER JOIN orders ON customers.customer_id = orders.customer_id;
📌 예제 데이터
**customers 테이블**
customer_id | name |
1 | 김철수 |
2 | 이영희 |
3 | 박민수 |
**orders 테이블**
order_id | customer_id | amount |
101 | 1 | 50000 |
102 | 2 | 75000 |
📌 실행 결과
customer_id | name | order_id | amount |
1 | 김철수 | 101 | 50000 |
2 | 이영희 | 102 | 75000 |
✔ INNER JOIN을 사용하면 두 테이블에서 **일치하는 데이터만 조회**됩니다.
4. OUTER JOIN 예제
✅ LEFT JOIN을 사용한 고객 & 주문 데이터 조회
SELECT customers.customer_id, customers.name, orders.order_id, orders.amount
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id;
📌 실행 결과
customer_id | name | order_id | amount |
1 | 김철수 | 101 | 50000 |
2 | 이영희 | 102 | 75000 |
3 | 박민수 | NULL | NULL |
✔ LEFT JOIN을 사용하면 **왼쪽 테이블(customers)의 모든 데이터가 조회되며,
오른쪽 테이블(orders)에서 일치하는 값이 없으면 NULL이 반환됩니다.**
5. OUTER JOIN의 종류
- ✔ LEFT JOIN: 왼쪽 테이블의 모든 데이터를 조회 (일치하는 데이터가 없는 경우 NULL 반환)
- ✔ RIGHT JOIN: 오른쪽 테이블의 모든 데이터를 조회
- ✔ FULL JOIN: 양쪽 테이블의 모든 데이터를 조회 (일치하지 않는 경우 NULL 포함)
🔍 결론
- ✔ **INNER JOIN**: 일치하는 데이터만 조회
- ✔ **OUTER JOIN**: 일치하지 않는 데이터도 포함
- ✔ **LEFT JOIN vs RIGHT JOIN**: 기준이 되는 테이블이 어디냐에 따라 다름
📖 다른 SQL 개념도 함께 확인하세요!
👉 SQL 조인 활용 가이드 보러 가기