图解数据库左连接、右连接、内连接、外连接、全连接的区别

图解数据库左连接、右连接、内连接、外连接、全连接的区别数据库连表方式内连接 inner innerjoin 外连接 outerjoin 左外连接 leftouterjoi 左连接 leftjoin 右外连接 rightouterjo 右连接 rightjoin 全连接 fulljoin union 准备现在有 2 张表 A 表和 B 表 数据和表结构如下内连接内连接查询的是两张表的并集 也就是 A 表和 B 表都必须有数据才能查询出来 以下三个查询的结果是一样的 针对上面的表数据 能查询出 id 为 1 2 3 的数据

数据库连表方式

  • 内连接 :innerinner join
  • 外连接 :outer join
    • 左外连接 :left outer join
    • 左连接 :left join
    • 右外连接 right outer join
    • 右连接: right join
  • 全连接 full joinunion

准备

内连接

以下三个查询的结果是一样的,针对上面的表数据,能查询出id为1、2、3的数据

-- join select * from A join B on A.id = B.id -- inner join select * from A inner join B on A.id = B.id -- 逗号的连表方式就是内连接 select * from A , B where A.id = B.id 

左外连接 和 左连接

下面2个查询的结果是一样的,针对上面的表数据,能查询出id为1、2、3、4的数据

-- left join select * from A left join B on A.id = B.id -- left outer join select * from A left outer join B on A.id = B.id 

右外连接 和 右连接

下面2个查询的结果是一样的,针对上面的表数据,能查询出id为1、2、3的数据

-- right join select * from A right join B on A.id = B.id -- right outer join select * from A right outer join B on A.id = B.id 

全连接

oracle的全连接

oracle的全连接查询可以直接用full join,

select * from a full join b on a.id = b.id 

mysql的全连接

mysql中没有full join,mysql可以使用union实现全连接;

select * from a left join b on a.id = b.id union select * from a right join b on a.id = b.id 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176773.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午9:05
下一篇 2026年3月26日 下午9:05


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号