美文网首页数据库相关
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