Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL CROSS JOIN과 INNER JOIN을 어떻게 구별할 수 있습니까?


우리는 조인 술어, 즉 지정된 조건을 기반으로만 MySQL CROSS JOIN과 INNER JOIN을 구별할 수 있습니다. INNER JOIN에 대한 쿼리를 작성하는 동안 조건을 지정해야 하지만 대조적으로 CROSS JOIN에 대한 쿼리를 작성하는 동안 조건을 지정할 필요가 없습니다. 이해를 돕기 위해 다음 데이터가 있는 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)

이제 INNER JOIN에 대한 쿼리는 다음과 같을 수 있습니다. -

mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 JOIN tbl_2 ON tbl_1.name = tbl_2.name;
+----+----+
| id | id |
+----+----+
| 4  | A  |
+----+----+
1 row in set (0.00 sec)

이제 조건을 지정하지 않고 위의 쿼리를 작성하면 CROSS 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)