我们如何区分 mysql cross join 和 inner join?

咱们只能按照毗连谓词(即指定的前提)来辨别 MySQL CROSS JOIN 以及 INNER JOIN。正在编写 INNER JOIN 查问时,咱们必要指定前提,但相反,正在编写 CROSS JOIN 盘问时,咱们没有需求指定前提。为了懂得它,咱们以名为 tbl_1 以及 tbl_两 的二个表为例,它们存在下列数据 -

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

mysql> Select * from tbl_二;
+----+---------+
| 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_两.id FROM tbl_1 JOIN tbl_两 ON tbl_1.name = tbl_二.name;
+----+----+
| id | id |
+----+----+
| 4  | A  |
+----+----+
1 row in set (0.00 sec)
登录后复造

而今,要是咱们正在没有指定前提的环境高编写上述查问,那末它将酿成 CROSS JOIN。无前提查问如高 -

mysql> Select tbl_1.id, tbl_两.id FROM tbl_1 JOIN tbl_两;
+----+----+
| id | id |
+----+----+
| 1  | A  |
| 两  | A  |
| 3  | A  |
| 4  | A  |
| 1  | B  |
| 二  | B  |
| 3  | B  |
| 4  | B  |
| 1  | C  |
| 两  | C  |
| 3  | C  |
| 4  | C  |
| 1  | D  |
| 两  | D  |
| 3  | D  |
| 4  | D  |
+----+----+
16 rows in set (0.00 sec)
登录后复造

以上即是咱们假定分辨 MySQL CROSS JOIN 以及 INNER JOIN?的具体形式,更多请存眷萤水红IT仄台另外相闭文章!

点赞(29) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部