MySQL 如何区分MySQL CROSS JOIN和INNER JOIN?

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)

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程