SQL 시험에서 JOIN 문제는 난이도와 출제 비중이 모두 높은 영역입니다. 특히 INNER JOIN, OUTER JOIN, SELF JOIN 등 다양한 조합이 나오며, 단순히 문법을 아는 것을 넘어 최적화된 쿼리를 작성할 수 있는 능력이 중요합니다. 이 글에서는 시험 대비를 위한 실전 팁을 정리합니다.
JOIN 기본 개념 정리
JOIN은 두 개 이상의 테이블을 연결해 원하는 데이터를 조회하는 구문입니다. 시험에서는 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN, SELF JOIN이 자주 등장합니다.
- INNER JOIN – 양쪽 테이블에서 조건을 만족하는 행만 반환
- LEFT JOIN – 왼쪽 테이블의 모든 행 + 조건 일치하는 오른쪽 테이블 데이터
- SELF JOIN – 동일 테이블을 두 번 참조해 계층 구조를 표현
시험에서 자주 나오는 함정
JOIN 문제에서는 다음과 같은 실수가 자주 나옵니다.
- WHERE 절에서 NULL 조건 누락 → OUTER JOIN 결과가 INNER JOIN처럼 축소됨
- 별칭(Alias) 혼동 →
table1 t1, table2 t2형태에서 t1, t2 오타 주의 - CARTESIAN PRODUCT 발생 → JOIN 조건을 빼먹으면 곱집합(×) 결과가 출력
JOIN 최적화 실전 팁
시험 대비뿐 아니라 실무에서도 속도와 정확성을 높이는 방법은 다음과 같습니다.
| 전략 | 설명 |
|---|---|
| 인덱스 활용 | JOIN 조건 컬럼에 인덱스가 있으면 검색 속도가 크게 향상됩니다. |
| 필요한 컬럼만 SELECT | SELECT * 대신 필요한 컬럼만 명시하면 실행 속도가 빨라집니다. |
| 서브쿼리 대신 JOIN | 가능한 경우 서브쿼리보다 JOIN을 쓰는 것이 효율적입니다. |
| 조건 순서 | JOIN 이후 WHERE 절에서 필터링 조건을 명확히 작성합니다. |
실전 예제
다음은 시험에 자주 등장하는 JOIN 예제입니다.
SELECT e.name, d.dept_name
FROM employees e
INNER JOIN departments d
ON e.dept_id = d.id
WHERE d.location = 'SEOUL';
이 문제에서는 employees와 departments 테이블을 JOIN하여 ‘SEOUL’ 부서 소속 직원명을 출력하는 문제입니다. 시험에서는 JOIN 조건의 정확성, WHERE 절 조건 반영 여부를 꼼꼼히 확인해야 합니다.
결론적으로, SQL JOIN은 단순히 문법을 암기하는 것이 아니라, 문제 상황에서 어떤 JOIN을 선택하고 어떻게 최적화할지 판단하는 능력이 중요합니다. 시험 전 마지막 복습 때는 JOIN 유형별 차이, 실행계획 해석, NULL 처리 등을 반드시 점검하세요.