다중 테이블 Join
하나의 SQL 쿼리에서 JOIN을 여러 번 사용하면 세 개 이상의 테이블을 한 번에 결합할 수 있습니다.
정규화된 데이터베이스에서는 관련 데이터를 서로 다른 테이블로 나누어 저장하기 때문에 다중 Join이 자주 사용됩니다.
참고: 대부분의 SQL 엔진에서
JOIN을 별도로 지정하지 않으면 기본값은INNER JOIN입니다.
다중 테이블 Join 문법
다중 테이블 JOIN 문법
SELECT ...
FROM table1
JOIN table2 ON ...
JOIN table3 ON ...;
- 각
JOIN은 새로운 테이블을 결과 집합에 추가합니다. - 각
ON절에서 테이블 간 관계를 명확히 정의해야 합니다.
다중 테이블 Join 예시
다음과 같은 테이블을 예로 들어 보겠습니다.
students
| student_id | name |
|---|---|
| 1 | 지민 |
| 2 | 서연 |
| 3 | 민재 |
| 4 | 나현 |
| 5 | 도윤 |
enrollments
| student_id | class_id |
|---|---|
| 1 | A1 |
| 2 | A2 |
| 3 | A1 |
| 4 | A3 |
| 5 | A2 |
classes
| class_id | class_name |
|---|---|
| A1 | 수학 |
| A2 | 한국사 |
| A3 | 물리 |
| A4 | 화학 |
아래 쿼리는 세 개의 테이블을 다중 Join으로 연결합니다.
테이블 3개 Join
SELECT students.name, classes.class_name
FROM students
JOIN enrollments ON students.student_id = enrollments.student_id
JOIN classes ON enrollments.class_id = classes.class_id;
쿼리 결과
| name | class_name |
|---|---|
| 지민 | 수학 |
| 서연 | 한국사 |
| 민재 | 수학 |
| 나현 | 물리 |
| 도윤 | 한국사 |
학생 정보를 수강 내역과 연결하고, 그 정보를 다시 과목명으로 매핑한 결과입니다.
다중 테이블 Join을 사용하는 경우
다중 Join은 다음과 같은 상황에서 유용합니다.
- 여러 테이블의 데이터를 합쳐 전체적인 뷰를 제공할 때
- 정규화된 스키마에서 관련 데이터를 통합할 때
- 다양한 문맥을 결합해 리포트나 대시보드를 만들 때
팁: 가독성을 높이기 위해
s,e,c같은 짧은 별칭 대신students,enrollments,classes처럼 설명적인 별칭(alias)을 사용하는 것이 좋습니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!