美文网首页数据库相关
mysql中inner join和outer join有什么区别

mysql中inner join和outer join有什么区别

作者: hbqzbl | 来源:发表于2021-04-17 21:30 被阅读0次

    joins主要是合并两个表中的数据组成一个临时的结果集,on后面指定执行连接所使用的的条件。inner join返回两个表基于连接条件实际匹配的行,即两个表交集。outer join返回两个表的并集结果,即匹配条件不满足的两个表的记录也将返回。

    下面结合实例讲解,有如下两个表:


    A表 B表

    inner join

    sql:
    select * from A a inner join B b on a.ID = b.ID;
    或者
    select * from A a, B b where a.ID = b.ID;

    查询结果如下:


    inner查询结果

    outer join

    • outer join即外连接,不需要连接表的每一条记录都匹配连接条件,不匹配连接条件的记录也将返回。即两个表的并集。outer join又包括left join以及right join。
      mysql没有outer join 相关语句,但可以对left join和right join的结果用union连接来实现。
      select * from A a left join B b on a.ID = b.ID union select * from A a right join B b on a.ID = b.ID;
      结果如下图:

      outerjoin查询结果
    • left join表示左侧表所有记录都将返回,并且不满足匹配条件的右侧连接表记录将返回null。
      select * from A a left join B b on a.ID = b.ID;
      结果如下图:

      leftjoin查询结果
    • right join与left join恰恰相反,表示右侧表所有记录都将返回,并且不满足匹配条件的左侧连接表记录将返回null。
      select * from A a right join B b on a.ID = b.ID;
      结果如下图:

      rightjoin查询结果

    下面是sql join所有情况的概览图

    sqljoins概览图

    相关文章

      网友评论

        本文标题:mysql中inner join和outer join有什么区别

        本文链接:https://www.haomeiwen.com/subject/rbpplltx.html