SQL:left join、right join 究竟什么区别?

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 究竟什么区别?_第1张图片

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

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

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

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

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

你可能感兴趣的:(数据库,sql,数据库,left,join,right,join,inner,join,cross,join,outer,join)