当前位置: 首页 > 工具软件 > join-monster > 使用案例 >

什么是cross join,inner join,left join,right join以及full outer join

索梓
2023-12-01

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是加了条件限制的

 类似资料: