다중 테이블 Join
하나의 SQL 쿼리에서 JOIN
연산을 여러 번 연결해 사용하면 세 개 이상의 테이블을 Join할 수 있습니다.
이는 정규화된 데이터베이스에서 관련 테이블로 데이터가 분리되어 있을 때 흔히 사용됩니다.
대부분의 SQL 데이터베이스에서 JOIN
이라고만 쓰면 기본적으로 INNER JOIN
으로 해석됩니다.
다중 테이블 Join 문법
다중 테이블 Join의 기본 문법은 다음과 같습니다.
다중 테이블 JOIN 문법
SELECT ...
FROM table1
JOIN table2 ON ...
JOIN table3 ON ...;
각 JOIN
은 결과 집합에 테이블을 하나씩 추가로 연결합니다.
각 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 | 화학 |
아래는 students
, enrollments
, classes
테이블을 다중 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을 사용할 수 있습니다.
- 서로 관련된 여러 테이블의 데이터를 합쳐 전체적인 뷰가 필요할 때
- 정규화된 스키마에서 작업할 때
- 문맥이 결합된 리포트를 만들어야 할 때
팁: 가독성을 위해 명확하고 설명적인 별칭(aliases)을 사용하세요.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!