우리는 조인 술어, 즉 지정된 조건을 기반으로만 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)