SQL JOIN 개념
- 두 개 이상의 테이블을 연결하여 데이터를 조회하는 방법
- 관계형 데이터베이스에서 핵심적인 기능
JOIN의 종류
1️⃣ INNER JOIN
- 두 테이블에서 공통된 값이 있는 행만 반환
SELECT * FROM 테이블A
INNER JOIN 테이블B
ON 테이블A.컬럼 = 테이블B.컬럼;
2️⃣ OUTER JOIN (LEFT / RIGHT)
- 한쪽 테이블의 모든 데이터를 유지하며 다른 테이블과 매칭되는 데이터를 가져옴
LEFT OUTER JOIN (LEFT JOIN)
- 왼쪽 테이블의 모든 행을 반환, 오른쪽 테이블에서 매칭되는 데이터가 없으면 NULL
SELECT * FROM 테이블A
LEFT JOIN 테이블B
ON 테이블A.컬럼 = 테이블B.컬럼;
RIGHT OUTER JOIN (RIGHT JOIN)
- 오른쪽 테이블의 모든 행을 반환, 왼쪽 테이블에서 매칭되는 데이터가 없으면 NULL
SELECT * FROM 테이블A
RIGHT JOIN 테이블B
ON 테이블A.컬럼 = 테이블B.컬럼;
3️⃣ FULL OUTER JOIN (UNION 사용)
- 양쪽 테이블의 모든 행을 반환, 매칭되지 않는 경우 NULL
- MySQL에서는 직접 지원하지 않으므로 UNION을 사용하여 구현
SELECT * FROM 테이블A
LEFT JOIN 테이블B
ON 테이블A.컬럼 = 테이블B.컬럼
UNION
SELECT * FROM 테이블A
RIGHT JOIN 테이블B
ON 테이블A.컬럼 = 테이블B.컬럼;
✅ UNION은 중복 제거(DISTINCT 포함), 중복 포함 시 UNION ALL 사용
✅ UNION 사용 시 SELECT 필드 개수, 순서, 타입이 일치해야 함
🔥 정리
JOIN 종류
- INNER JOIN: 공통된 값이 있는 행만 반환
- LEFT JOIN: 왼쪽 테이블의 모든 행 + 오른쪽 테이블에서 매칭되는 행
- RIGHT JOIN: 오른쪽 테이블의 모든 행 + 왼쪽 테이블에서 매칭되는 행
- FULL OUTER JOIN (UNION): 양쪽 테이블의 모든 행 반환, 매칭되지 않는 데이터는 NULL
'SQL' 카테고리의 다른 글
1:N, M:N 관계에서의 외래키 설계와 테이블 명명법 (0) | 2025.04.09 |
---|---|
SQL - 기초 문법 3 (0) | 2025.02.24 |
SQL - 기초 문법2 (0) | 2025.02.21 |
SQL 기초 문법 (0) | 2025.02.20 |