• wordpress CMS主题:ssmay主题wordpress CMS主题:ssmay主题
  • 首页 > PHP开发 > php操作mysql数据库(8):多表查询之连接查询

    php操作mysql数据库(8):多表查询之连接查询

    作者: 分类:PHP开发 点击: 95 次
    wordpress CMS主题:ssmay主题

      前面的几章节,我们介绍了mysql数据库的单表查询语句,一般情况下,我们只需要单表查询就足够了。但是,mysql数据库是关系型数据库,很多时候,一个单元数据信息可能会存放在不同的数据表中,如:wordpress的数据库,文章主体信息存放在wp_posts表中,文章自定义字段存放在wp_postmeta表中。这时,要想查询文章全部信息时,就需要多表查询。本章将介绍多表查询之连接查询。连接查询有以下几种。

      案例1:boy表和girl表;杨过与小龙女一对,陈冠希与张柏芝一对,他们的id号相同。通过连接查询来把2个表关联起来。

      php操作mysql数据库(8):多表查询之连接查询

      1:内连接查询:inner join ... on

      用inner join连接2个表,on是查询条件,2个表中符合条件的都显示出来。如下:

      select * from boy inner join girl on boy.id=girl.id;

      查询2个表中id相等的数据。查询结果如下:

      php操作mysql数据库(8):多表查询之连接查询

      2:左连接查询:left join ... on

      左连接查询2个表,左边的表全部显示,右边的表只显示符合条件的数据。

      select * from boy left join girl on boy.id=girl.id;

      查询结果如下图,左边表不符合条件的“吊丝”也显示出来了,右边表不符合条件的被排除掉:

      php操作mysql数据库(8):多表查询之连接查询

      3:右连接查询:right join ... on

      右连接,右边的表的数据全部显示,左边的表只显示符合条件的。

      select * from boy right join girl on boy.id=girl.id;

      查询结果如下图,

      php操作mysql数据库(8):多表查询之连接查询

      4:合并连接:union 或 union all

      合并连接要求:select获取2个表的列(字段)数必须相同。字段名不需要相同。

      union与union all的区别:

      union会合并2个表中字段值完全相同的行,合并是相当耗时的,所以,一般使用union all。union all不会合并值完全相同的行。

      案例:把下面的a表和b表合并,并且把id相同的num相加

      php操作mysql数据库(8):多表查询之连接查询

      查询语句如下:

      select id,sum(num) from (select * from a union all select * from b) as gk group by id;

      查询结果如下:

      php操作mysql数据库(8):多表查询之连接查询

      从上图中,我们可以看到,a表和b表中id相同的数据合并了,并把num值相加。

       



      QQ二维码

    文章作者:honor
    本文地址:http://wanlimm.com/77201808186617.html
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    上一篇:
    下一篇:
    wordpress CMS主题:ssmay主题

    或许你会感兴趣的文章:

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    This site uses Akismet to reduce spam. Learn how your comment data is processed.