跳至正文
数据库的 join 连接类型

数据库的 join 连接类型

注意:此文章已超过 1 年未更新,部分信息可能已经过时。

内连接

内连接为默认连接方式,只有两张表都匹配的行才显示。

sql
SELECT * from a INNER JOIN b on a.name=b.name;

左(外)连接

左边的表不加限制,会全部显示出来,右边的只会显示符合搜索条件的记录,不匹配的记录会以 null 显示。

sql
SELECT * from a LEFT JOIN b on a.name=b.name;

右(外)连接

右边的表不加限制,左边不匹配的记录会以 null 显示。

sql
SELECT * from a RIGHT JOIN b on a.name=b.name;

全(外)连接

两张表都不加限制,左右的列都有不匹配的 null 显示。

MySQL 不支持全外连接,可以通过union实现:

sql
select * from B left join A
on B.name = A.name
union all
select * from B right join A
on B.name = A.name;

用 union 和 union all 的区别:union all 不会去重,会把两张表的数据全部取出。

本文共 224 字,以 CC 署名-非商业性使用-禁止演绎 4.0 国际 协议进行许可。

评论

博客助手

正在打开博客助手…