我们如何区分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 CROSS JOIN和INNER JOIN? 的全部内容, 来源链接: utcz.com/z/343428.html