mysql中如何执行关联查询

mysql中如何执行关联查询,第1张

内关联 inner join

左关联 left join

右关联 right join

交叉关联 cross join

语法为:

select *

from a inner join b

on a.xx=b.xx

where XXX

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8495628.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存