首页 / Mysql / mysql中各种常见join连表查询实例总结

mysql中各种常见join连表查询实例总结

本文实例讲述了mysql中各种常见join连表查询。分享给大家供大家参考,具体如下:

本文实例讲述了mysql中各种常见join连表查询。分享给大家供大家参考,具体如下:

通常我们需要连接多个表查询数据,以获取想要的结果。

一、连接可以分为三类:

  (1) 内连接:join,inner join

  (2) 外连接:left join,left outer join,right join,right outer join,union,union all

  (3) 交叉连接:cross join

 mysql中各种常见join连表查询实例总结

二、准备需要演示的表:

a表与b表的数据如图中所示:

mysql中各种常见join连表查询实例总结

三、内连接inner join或join

结果如下:

mysql中各种常见join连表查询实例总结

内连接可以理解为,两个表中同时满足某条件的数据记录组合。也就是表A和表B中满足条件a.id = b.a_id的所有记录。

当表A中的一条记录对应表B中的多条记录时,会以重复的方式对应多条表B记录出现在结果集中。

当表B中的一条记录对应表A中的多条记录时,会以重复的方式对应多条表A记录出现在结果集中。

四、外连接left join或right join

  (1) 左外连接

mysql中各种常见join连表查询实例总结

左外连接,会以左边的表A为主表,返回所有行,即使右表B中没有匹配的行。

如果左边的表A在右表B中找不到一条记录,则返回表A所有记录并且表B相应的字段设为null。

如果左边的表A在右表B中找到多条记录,则以相同表A记录和不同表B记录多条显示在结果集中。

这种情况下,其实是把表A中所有记录都查询出来了,包括不满足条件的记录。

如果我们只想查出表A中满足条件的,或是不满足条件的,该怎么查?

mysql中各种常见join连表查询实例总结

上面的语句查询的,就是表A中满足条件的。

mysql中各种常见join连表查询实例总结

上面的语句查询的,就是表A中不满足条件的。

  (2) 右外连接

mysql中各种常见join连表查询实例总结

右外连接其实跟左外连接一样,区别在于 主表的确定,两者之间可以相互转换。

右外连接的描述基本与左外连接相同,这里就不过多描述了。

  (3) 全连接full join

mysql并不支持全连接,不过有相应的替代方案,就是left join union right join 来代替。

mysql中各种常见join连表查询实例总结

全连接会从表A和表B中返回所有的行,如果表A中的行在表B中没有匹配,或是表B中的行在表A中没有匹配,这些行都会显示,不存在的字段以null补充。

union会把其中重复的行合并。

这种情况下,是把表A和表B中满足条件和不满足条件的记录都显示出来了。

如果只想显示所有不满足条件的记录,则通过如下语句:

如果只想显示所有满足条件的记录,则通过如下语句:

 五、交叉连接

交叉连接实际上就是表A与表B的笛卡尔乘积。

mysql中各种常见join连表查询实例总结

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL查询技巧大全》、《MySQL常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总》

希望本文所述对大家MySQL数据库计有所帮助。

本文来自网络,不代表我是攻城狮立场,转载请注明出处:https://www.54gcs.cn/sql/mysql/5709.html

helwo作者

上一篇
下一篇

为您推荐

发表评论

联系我们

联系我们

在线咨询: QQ交谈

邮箱: web@5vo.cn

工作时间:周一至周五,9:00-17:30,节假日休息
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

手机访问
手机扫一扫打开网站

手机扫一扫打开网站

返回顶部
跳至工具栏