본문 바로가기

SQL & 데이터베이스/SQL 기본 문법 & 오류

[SQL] INNER JOIN vs OUTER JOIN 차이 및 활용법

[SQL] INNER JOIN vs OUTER JOIN 차이 및 활용법

1. JOIN이란?

SQL에서 JOIN은 **두 개 이상의 테이블을 결합하여 데이터를 조회하는 방식**입니다.

특히, INNER JOINOUTER JOIN은 자주 사용되는 유형이며, 데이터 조회 방식이 다릅니다.


2. INNER JOIN vs OUTER JOIN 비교

구분INNER JOINOUTER JOIN
결합 방식두 테이블에서 **일치하는 데이터만 반환**일치하지 않는 데이터도 포함
NULL 처리일치하지 않는 데이터는 반환되지 않음일치하지 않는 데이터도 NULL 값을 포함하여 반환
종류INNER JOINLEFT 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_idname
1김철수
2이영희
3박민수
**orders 테이블**
order_idcustomer_idamount
101150000
102275000
📌 실행 결과
customer_idnameorder_idamount
1김철수10150000
2이영희10275000

✔ 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_idnameorder_idamount
1김철수10150000
2이영희10275000
3박민수NULLNULL

✔ 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 조인 활용 가이드 보러 가기