SQL의 Join은 여러 테이블 간의 관계를 결합하여 데이터를 조회할 때 사용됩니다. Join을 통해 서로 다른 테이블의 데이터를 결합해 원하는 결과를 얻을 수 있습니다. 이번 글에서는 INNER JOIN, LEFT JOIN 등 주요 Join의 개념과 활용 방법을 살펴보겠습니다.
1. JOIN의 기본 개념
Join은 테이블 간의 공통된 컬럼을 기준으로 데이터를 결합하는 기능입니다. 예를 들어, 고객 테이블과 주문 테이블이 있다고 가정했을 때, 고객 ID(CustomerId)를 기준으로 결합하여 고객별 주문 내역을 조회할 수 있습니다.
기본 문법
SELECT 컬럼명
FROM 테이블1 JOIN 테이블2 ON 테이블1.컬럼명 = 테이블2.컬럼명;
2. INNER JOIN
INNER JOIN은 두 테이블 간의 교집합 데이터를 반환합니다. 즉, 조건에 일치하는 데이터만 결합됩니다.
예제
- 고객(Customer) 테이블과 청구서(Invoice) 테이블 결합
SELECT Customer.FirstName, Customer.LastName, Invoice.Total
FROM Customer INNER JOIN Invoice ON Customer.CustomerId = Invoice.CustomerId;
3. LEFT JOIN
LEFT JOIN은 왼쪽 테이블의 모든 데이터를 반환하며, 오른쪽 테이블에 매칭되지 않는 데이터는 NULL로 채워집니다.
예제
- 고객 테이블과 청구서 테이블 결합 (청구서 없는 고객 포함)
SELECT Customer.FirstName, Customer.LastName, Invoice.Total
FROM Customer LEFT JOIN Invoice ON Customer.CustomerId = Invoice.CustomerId;
4. JOIN 조건
Join을 사용할 때 조건을 명확히 지정해야 데이터가 올바르게 결합됩니다. SQL에서는 ON 절과 USING 절을 통해 Join 조건을 설정할 수 있습니다.
ON 절
ON 절은 두 테이블의 결합 기준이 되는 컬럼을 명시적으로 지정합니다.
예제
- ON 절 사용
SELECT Album.Title, Artist.Name
FROM Album INNER JOIN Artist ON Album.ArtistId = Artist.ArtistId;
USING 절
USING 절은 양쪽 테이블에 동일한 이름의 컬럼이 있을 때 사용합니다. 간결한 문법으로 결합 조건을 지정할 수 있습니다.
예제
- USING 절 사용
SELECT Album.Title, Artist.Name
FROM Album INNER JOIN Artist USING (ArtistId);
JOIN 비교
Join 유형설명예제 활용
INNER JOIN | 두 테이블 간 공통된 데이터를 결합 | 고객과 청구서 데이터 |
LEFT JOIN | 왼쪽 테이블의 모든 데이터와 매칭되지 않은 데이터 포함 | 고객과 청구서 데이터 |
RIGHT JOIN | 오른쪽 테이블의 모든 데이터와 매칭되지 않은 데이터 포함 | 거의 사용되지 않음 |
FULL OUTER JOIN | 양쪽 테이블의 모든 데이터를 결합, 매칭되지 않는 데이터 포함 | MySQL 기본 미지원 |
JOIN 예제 활용
1. 특정 국가의 고객과 주문 내역 조회
SELECT Customer.FirstName, Customer.LastName, Invoice.Total
FROM Customer INNER JOIN Invoice ON Customer.CustomerId = Invoice.CustomerId
WHERE Customer.Country = 'USA';
2. 주문이 없는 고객 목록 조회
SELECT Customer.FirstName, Customer.LastName
FROM Customer LEFT JOIN Invoice ON Customer.CustomerId = Invoice.CustomerId
WHERE Invoice.CustomerId IS NULL;
요약
- INNER JOIN: 두 테이블 간 공통된 데이터를 결합합니다.
- LEFT JOIN: 왼쪽 테이블의 모든 데이터와 매칭되지 않은 데이터를 포함합니다.
- ON 절: 결합 조건을 명시적으로 지정합니다.
- USING 절: 동일한 이름의 컬럼을 기준으로 결합합니다.
SQL Join은 데이터 간의 관계를 이해하고 활용할 때 필수적인 도구입니다. 이를 통해 여러 테이블의 데이터를 효과적으로 결합하여 다양한 분석을 수행할 수 있습니다. 다음 글에서는 SQL 서브쿼리를 다뤄보겠습니다.
'SQL > 학습정리' 카테고리의 다른 글
SQL 복합 쿼리 (0) | 2024.12.14 |
---|---|
SQL 서브쿼리 (0) | 2024.12.12 |
SQL 집계함수 (0) | 2024.12.10 |
SQL 기본 문법 2 (0) | 2024.12.09 |
SQL 기본 문법 1 (0) | 2024.12.09 |