首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

MySQL中inner join 和 cross join 的区别

发布网友 发布时间:2022-04-23 12:38

我来回答

2个回答

热心网友 时间:2022-04-08 12:49

Inner join:内连接,也叫等值连接,inner join产生同时符合A和B的一组数据。
Cross join:交叉连接,得到的结果是两个表的乘积,即笛卡尔积
笛卡尔(Descartes)乘积又叫直积。假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}。可以扩展到多个集合的情况。类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选课情况。

Inner join 和 Cross join 的区别:

1、Cross join生成的是先生成笛卡尔集,然后on连接条件被视为了filter用于数据过滤,
Inner join是直接基于join condition做连接,生成的join集合就是最终的输出结果,产生的中间数据更小。
2、Inner join结合ON子句使用;Cross join用于其它地方。
3、Cross join产生的是笛卡尔集,也就是 M*N 的集合,Inner join是内联查询,不是产生笛卡尔集。
4、Cross join不加条件*,Inner join的on是加了条件*的

热心网友 时间:2022-04-08 14:07

INNER JOIN是交集
CROSS JOIN是并集

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com