JOIN(또는 INNER JOIN)과 LEFT JOIN(또는 LEFT OUTER JOIN)은 SQL에서 테이블을 결합할 때 사용하는 연산자로,
두 테이블 간의 관계를 기반으로 데이터를 결합합니다. 그러나 반환되는 결과가 다릅니다.
테이블 A
| ID | Name |
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
테이블 B
| ID | Order |
| 1 | A123 |
| 2 | B456 |
| 4 | D789 |
SELECT A.ID, A.Name, B.Order
FROM A JOIN B ON A.ID = B.ID;
결과 (JOIN):
| ID | Name | Order |
| 1 | Alice | A123 |
| 2 | Bob | B456 |
SELECT A.ID, A.Name, B.Order
FROM A LEFT JOIN B ON A.ID = B.ID;
결과 (LEFT JOIN):
| ID | Name | Order |
| 1 | Alice | A123 |
| 2 | Bob | B456 |
| 3 | Charlie | NULL |
특성JOIN (INNER JOIN)LEFT JOIN (LEFT OUTER JOIN)
| 결과 포함 조건 | 두 테이블 모두에서 조건에 일치하는 행만 포함 | 왼쪽 테이블의 모든 행 포함, 오른쪽 테이블은 조건 일치 시 포함 |
| 조건 불일치 시 결과 | 조건에 일치하지 않는 행은 제외 | 오른쪽 테이블에서 조건에 일치하지 않는 경우 NULL로 채움 |
| 결합 대상 | 교집합 | 왼쪽 테이블의 모든 데이터 포함 |
| 사용 목적 | 일치하는 데이터만 필요한 경우 | 왼쪽 테이블의 전체 데이터 보존 필요 시 |
LEFT JOIN 활용:
SELECT Customers.ID, Customers.Name, Orders.OrderID
FROM Customers JOIN Orders ON Customers.ID = Orders.CustomerID;
| JOIN (교집합) | LEFT JOIN (왼쪽 포함) |
| 🟢 A와 B의 공통 부분 | 🟢 A 전체 + B의 공통 부분 |
테이블 결합 목적과 요구사항에 따라 JOIN 또는 LEFT JOIN을 선택하면 됩니다!
| AND EXISTS (SELECT 1 FROM 테이블) 쿼리 조건 뜻? (0) | 2024.12.04 |
|---|---|
| group by a, group by a,b 차이 (0) | 2024.12.03 |
| DBMS 뜻? 종류? (1) | 2024.11.27 |
| 데이터베이스 SQL COALESCE 함수 사용하는 방법 (0) | 2024.11.25 |
| 데이터베이스 SQL에서 다음행 찾는 LEAD( ) OVER ( ) 함수 (0) | 2024.11.23 |