SQL

[SQL#11] JOIN

j.d 2025. 4. 16. 20:55

SQL의 JOIN은 두 개 이상의 테이블을 연결해 하나의 결과로 보여주는 기능입니다.
여러 테이블에서 관련 데이터를 가져올 때 필수적으로 사용되며, 특히 INNER JOIN, LEFT JOIN, RIGHT JOIN, OUTER JOIN은 관계형 데이터베이스의 핵심입니다.

 

예시 테이블

customers 테이블

customer_id name
1 Alice
2 Bob
3 Charlie

orders 테이블


order_id customer_id product
101 1 Keyboard
102 1 Mouse
103 2 Monitor
104 4 Headset

 

1. INNER JOIN

교집합과 같이 양쪽 테이블에서 조건이 일치하는 행만 조회합니다.

SELECT *
FROM customers
INNER JOIN orders ON customers.customer_id = orders.customer_id;
customer_id name order_id product
1 Alice 101 Keyboard
1 Alice 102 Mouse
2 Bob 103 Monitor

 

2. LEFT JOIN

왼쪽 테이블을 기준으로 모든 행을 유지하고 오른쪽 데이블은 일치하는 값만 붙입니다.

※ 아래 코드 기준으로 customers 테이블이 왼쪽입니다.

SELECT *
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id;
customer_id name order_id product
1 Alice 101 Keyboard
1 Alice 102 Mouse
2 Bob 103 Monitor
3 Charlie NULL NULL

→ Charlie는 주문이 없지만 왼쪽 테이블에 있기 때문에 유지됩니다.

 

※ RIGHT JOIN의 경우, LEFT JOIN에서 테이블 순서만 변경하면 되므로, 설명은 생략하도록 하겠습니다.

 

 

3. FULL OUTER JOIN

양쪽 모든 데이터를 포함하며, 일치하지 않으면 NULL로 표시합니다.

MySQL은 FULL OUTER JOIN을 직접 지원하지 않으므로, UNION을 사용합니다.

※ 다음 글에서 계속 설명하도록 하겠습니다.

 

 

'SQL' 카테고리의 다른 글

[DB Optimization#1] DB 성능 최적화란?  (0) 2025.04.16
[SQL#12] UNION / UNION ALL  (0) 2025.04.16
[SQL#10] CASE  (0) 2025.04.16
[SQL#9] GROUP BY / HAVING  (0) 2025.04.16
[SQL#8] COUNT / SUM / AVG / MIN / MAX  (0) 2025.04.16