SQL/개념
CROSS JOIN 절
데이터분석가 이채은
2024. 9. 5. 09:00
예를 들어, 아래와 같은 두 개의 테이블이 있다고 가정해 봅시다.
employees 테이블 (직원 정보):
employee_id | name |
1 | John |
2 | Alice |
3 | Bob |
departments 테이블 (부서 정보):
department_id | department_name |
101 | Sales |
102 | HR |
CROSS JOIN이란?
CROSS JOIN은 두 테이블의 모든 행을 서로 조합하여 결과를 반환하는 조인 방식입니다. 한 테이블의 각 행이 다른 테이블의 모든 행과 결합되므로, 결과로 만들어지는 행의 수는 두 테이블의 행 개수의 곱과 같습니다. 이를 카티션 곱이라고 합니다.
우리는 employees 테이블과 departments 테이블을 CROSS JOIN을 사용해 결합하여, 모든 직원과 모든 부서의 조합을 만들어내고 싶습니다.
SELECT employees.name, departments.department_name
FROM employees
CROSS JOIN departments;
name | department_name |
John | Sales |
John | HR |
Alice | Sales |
Alice | HR |
Bob | Sales |
Bob | HR |
- John은 Sales와 HR 부서 모두와 결합되었습니다.
- Alice와 Bob도 각각 Sales와 HR 부서와 결합되었습니다.
- 총 3명의 직원과 2개의 부서가 있으므로, 결과는 3 * 2 = 6개의 행이 나옵니다.