양쪽 테이블에서 조건을 만족하는 행만 조회
SELECT *
FROM A
INNER JOIN B
ON A.id = B.a_id;
특징
SELECT *
FROM A
LEFT JOIN B
ON A.id = B.a_id;
왼쪽(A) 테이블은 모두 유지, 오른쪽(B)은 매칭되는 것만
SELECT *
FROM A
RIGHT JOIN B
ON A.id = B.a_id;
오른쪽(B) 테이블은 모두 유지, 왼쪽(A)은 매칭되는 것만
SELECT *
FROM A
FULL OUTER JOIN B
ON A.id = B.a_id;
양쪽 테이블의 모든 데이터 포함, 매칭 안 되는 곳은
NULL
SELECT *
FROM A
CROSS JOIN B;
조인 조건 없이 모든 행 조합 (곱집합)
SELECT a.emp_no, b.emp_no AS mgr_no
FROM employees a
JOIN employees b
ON a.mgr_id = b.emp_no;
자기 자신을 조인해서 계층 관계 표현 (예: 사원-상사)
| JOIN 종류 | 설명 | NULL 포함 | 사용 예시 |
|---|---|---|---|
| INNER JOIN | 조건을 만족하는 행만 | ❌ | 두 테이블에 모두 존재하는 회원 정보 |
| LEFT JOIN | 왼쪽 테이블 전체 + 오른쪽 조건 만족 | ⭕ | 구매 이력 없는 회원도 조회 |
| RIGHT JOIN | 오른쪽 테이블 전체 + 왼쪽 조건 만족 | ⭕ | 담당자가 없는 프로젝트도 조회 |
| FULL OUTER JOIN | 양쪽 테이블 전체 | ⭕ | 전체 비교 및 누락 탐색 |
| CROSS JOIN | 모든 행 조합 | ❌ | 조합 가능한 모든 경우의 수 |
| SELF JOIN | 같은 테이블을 조인 | ⭕ | 상사-직원 구조 표현 |
ON A.user_id = B.id)INNER JOIN은 곱집합 발생 → 주의!AND, OR로 조합 가능