SQL:left join、right join 究竟什么区别?
  DosddciaWHNX 2023年11月02日 28 0


1、SQL join 分三种

1)inner join(内连接,也叫等值连接)

显示两个表中有联系的所有数据,是默认方式。

2)cross join(交叉连接)

两个表格做笛卡尔积,显示的数据行数是两个表格行数的乘积,简单地说,就是简单地将所有列拼接在一起,不需要考虑列值的匹配。遇到同名的列,就加(1)(2)…… 作为区分。

3)outer join(外连接)

2、outer join分三种

需要注意的是,from 语句后面接的是左表,left/right/full join 后面接的是右表。

1)left join

采用 left join 的时候,优先展示的是左表的所有数据,而右表的数据根据与左表的关联关系拼接到右边,没有值的项设为 Null。

2)right join

采用 right join 的时候,优先展示的是右表的所有数据,而左表的数据根据与右表的关联关系拼接在左边,没有值的项设为 Null。

3) full join

展示左表和右表的所有数据,与cross join的区别在于,full join 显示左连接、右连接和内连接的并集,而不是简单地拼接各列数据。

3、看图辅助理解

SQL:left join、right join 究竟什么区别?_数据库

本篇博文的知识整合仅用于简单地记住理论内容,具体了解请参考如下文章:

【SQLite】SQLite数据库的内连接INNER JOIN、左连接LEFT JOIN、右连接RIGHT JOIN和交叉连接CROSS JOIN 关键字_sqlite 连接_logani的博客

left join、right join和join,傻傻分不清? - 知乎

【一起来补课】一文彻底搞懂Left Join、Right Join和Inner Join_left join right join innerjoin_小样yx的博客

FULL JOIN和CROSS JOIN的区别_一点莹的博客


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  xaeiTka4h8LY   2024年05月31日   46   0   0 MySQLSQL
  xaeiTka4h8LY   2024年05月31日   40   0   0 MySQL数据库
  xaeiTka4h8LY   2024年05月17日   52   0   0 数据库JavaSQL
  xaeiTka4h8LY   2024年05月17日   49   0   0 数据库SQL
  xaeiTka4h8LY   2024年05月17日   38   0   0 MySQL数据库
  xaeiTka4h8LY   2024年05月31日   39   0   0 数据库mongodb
DosddciaWHNX