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二、准备需要演示的表:a表与b表的数据如图中所示:三、内连接inner join或join结果如下:内连接可以理解为,两个表中同时满足某条件的数据记录组合。也就是表A和表B中满足条件a.id = b.a_id的所有记录。当表A中的一条记录对应表B中的多条记录时,会以重复的方式对应多条表B记录出现在结果集中。当表B中的一条记录对应表A中的多条记录时,会以重复的方式对应多条表A记录出现在结果集中。四、外连接left join或right join  (1) 左外连接左外连接,会以左边的表A为主表,返回所有行,即使右表B中没有匹配的行。如果左边的表A在右表B中找不到一条记录,则返回表A所有记录并且表B相应的字段设为null。如果左边的表A在右表B中找到多条记录,则以相同表A记录和不同表B记录多条显示在结果集中。这种情况下,其实是把表A中所有记录都查询出来了,包括不满足条件的记录。如果我们只想查出表A中满足条件的,或是不满足条件的,该怎么查?上面的语句查询的,就是表A中满足条件的。上面的语句查询的,就是表A中不满足条件的。  (2) 右外连接右外连接其实跟左外连接一样,区别在于 主表的确定,两者之间可以相互转换。右外连接的描述基本与左外连接相开发云主机域名同,这里就不过多描述了。  (3) 全连接full joinmysql并不支持全连接,不过有相应的替代方案,就是left join union right join 来代替。全连接会从表A和表B中返回所有的行,如果表A中的行在表B中没有匹配,或是表B中的行在表A中没有匹配,这些行都会显示,不存在的字段以null补充。union会把其中重复的行合并。这种情况下,是把表A和表B中满足条件和不满足条件的记录都显示出来了。如果只想显示所有不满足条件的记录,则通过如下语句:如果只想显示所有满足条件的记录,则通过如下语句:五、交叉连接交叉连接实际上就是表A与表B的笛卡尔乘积。更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL查询技巧大全》、《MySQL常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总》希望本文所述对大家MySQL数据库计有所帮助。

相关推荐: mysql数据库集群出现1236错误导致主库与从库无法同步的

/etc/my.cnf中sync_binlog参数设置累积多少个事务数后落盘说明:1. 数据存到数据库和binlo开发云主机域名g落盘是同时进行的2. 数据是先存在内存中,达到设置的事务数后才落盘的3. 从库读的是主库的内存中的数据,并非落盘的数据4. 写入数…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/10 09:52
下一篇 06/10 09:52

相关推荐