Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 JOIN 키워드로 교차 조인(CROSS JOIN) 쿼리 작성하는 방법

MySQL에서 교차 조인(CROSS JOIN) 쿼리는 JOIN 키워드를 사용해서도 작성할 수 있습니다. 일반적으로 교차 조인은 CROSS JOIN 키워드를 명시적으로 사용하지만, JOIN 키워드 뒤에 ON 절이나 WHERE 같은 조건 없이 두 테이블을 단순히 나열하면 MySQL은 이를 교차 조인으로 해석하여 두 테이블의 모든 행 조합, 즉 카테시안 곱(Cartesian Product)을 반환합니다.

예제 테이블 준비

개념을 쉽게 이해하기 위해 다음과 같은 데이터를 가진 두 개의 테이블, tbl_1과 tbl_2를 예로 들어 보겠습니다.

mysql> Select * from tbl_1;
+----+--------+
| Id | Name   |
+----+--------+
| 1  | Gaurav |
| 2  | Rahul  |
| 3  | Raman  |
| 4  | Aarav  |
+----+--------+
4 rows in set (0.00 sec)

mysql> Select * from tbl_2;
+----+---------+
| Id | Name    |
+----+---------+
| A  | Aarav   |
| B  | Mohan   |
| C  | Jai     |
| D  | Harshit |
+----+---------+
4 rows in set (0.00 sec)

JOIN 키워드를 사용한 교차 조인 쿼리

아래 쿼리는 JOIN 키워드만 사용하여 두 테이블을 교차 조인하는 예입니다.

mysql> Select tbl_1.id,tbl_2.id FROM tbl_1 JOIN tbl_2;
+----+----+
| id | id |
+----+----+
| 1  | A  |
| 2  | A  |
| 3  | A  |
| 4  | A  |
| 1  | B  |
| 2  | B  |
| 3  | B  |
| 4  | B  |
| 1  | C  |
| 2  | C  |
| 3  | C  |
| 4  | C  |
| 1  | D  |
| 2  | D  |
| 3  | D  |
| 4  | D  |
+----+----+
16 rows in set (0.00 sec)

결과 분석

실행 결과를 살펴보면 tbl_1의 각 행(4개)이 tbl_2의 모든 행(4개)과 한 번씩 결합되어 총 16개(4 × 4)의 행이 반환된 것을 확인할 수 있습니다. 이 결과는 CROSS JOIN 키워드를 명시적으로 사용했을 때와 완전히 동일하며, 조건이 지정되지 않은 JOIN은 곧 교차 조인으로 동작한다는 것을 보여줍니다.