데이터베이스에서 조인은 데이터를 효율적으로 결합하는 핵심 기능입니다.
기본적인 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN 외에도 성능과 최적화를 위한 다양한 고급 조인 기법이 존재합니다.
| 조인 기법 | 특징 | 주요 활용 사례 |
|---|---|---|
| Nested Loop Join | 작은 테이블과 인덱스 사용 시 효율적 | 인덱스 활용이 가능한 경우 |
| Hash Join | 등가 조인(=)에 적합, 대용량 테이블에서 빠름 | 인덱스 없는 대용량 테이블 |
| Sort Merge Join | 정렬된 데이터에서 효율적, 범위 조인(<, >, BETWEEN) 가능 | 데이터 정렬이 유리한 경우 |
| Merge Join | 두 테이블이 정렬되어 있으면 빠름 | 정렬된 데이터 조인 |
| Self Join | 동일한 테이블 내에서 조인 | 계층 구조 데이터 조회 |
| Cross Join | 모든 조합을 생성(카테시안 곱) | 조합 생성 |
| Anti Join | 특정 조건에 맞지 않는 행을 찾는 조인 | NOT IN, NOT EXISTS |
| Semi Join | 서브쿼리 최적화, 부분 집합 반환 | EXISTS 연산 최적화 |
| Lateral Join (PostgreSQL, Oracle 지원) | 서브쿼리 결과를 행별로 참조 | JSON, 배열 데이터 처리 |
SELECT e1.emp_id, e1.name AS employee, e2.name AS manager
FROM employees e1
LEFT JOIN employees e2 ON e1.manager_id = e2.emp_id; ✅ e1(직원)과 e2(관리자)를 같은 테이블에서 조인하여 계층 관계를 조회
SELECT e.name, p.project_name
FROM employees e
CROSS JOIN projects p; ✅ 모든 직원과 프로젝트를 조합하여 가능한 모든 경우의 수를 생
SELECT e.emp_id, e.name
FROM employees e
WHERE NOT EXISTS (
SELECT 1 FROM salaries s WHERE e.emp_id = s.emp_id
); ✅ salaries 테이블에 급여 정보가 없는 직원만 조회
SELECT e.emp_id, e.name
FROM employees e
WHERE EXISTS (
SELECT 1 FROM salaries s WHERE e.emp_id = s.emp_id
); ✅ 급여 정보가 존재하는 직원만 조회 (반환 행 수 감소로 성능 최적화)
SELECT e.emp_id, e.name, s.salary
FROM employees e
LEFT JOIN LATERAL (
SELECT salary FROM salaries s WHERE s.emp_id = e.emp_id ORDER BY s.date DESC LIMIT 1
) s ON true; ✅ 각 직원에 대해 최신 급여 정보만 가져옴
| 조인 기법 | 사용 목적 | 장점 | 단점 |
|---|---|---|---|
| Self Join | 계층 구조 조회 | 간단한 구현 | 대규모 데이터 시 비효율적 |
| Cross Join | 모든 조합 생성 | 특정 경우 유용 | 필요 이상으로 많은 결과 생성 가능 |
| Anti Join | 특정 데이터 제외 | 빠른 검색 가능 | NULL 처리 주의 필요 |
| Semi Join | 부분 데이터 조회 | 서브쿼리 최적화 | 서브쿼리 최적화 필요 |
| Lateral Join | 행별 서브쿼리 활용 | JSON, 배열 데이터 처리 유리 | PostgreSQL, Oracle에서만 지원 |
요양원 선택 전 반드시 확인해야 할 체크리스트를 공개합니다. 공식 평가 자료 조회법, 방문 시 확인…
공공기관 채용 비리의 실태와 피해 지원자의 대응법을 정리했습니다. 채용 비리 신고 방법, 공익신고자 보호제도, 취준생…
주식 손실을 세금 절약에 활용하는 합법적 방법을 공개합니다. 해외주식 손익통산, ISA 계좌 활용, 연금계좌 절세까지…
배달이 예상 시간보다 크게 늦으면 취소·환불을 요청할 수 있습니다. 배달앱별 지연 취소 방법과 잘못 배달됐을…
통신비 절약의 핵심은 요금제 최적화입니다. 내 데이터 사용량 확인법, 알뜰폰 전환 비교, 위약금 없이 요금제…