数据库的 join 连接类型

数据库的 join 连接类型

Sep 30, 2020
2020
DB

内连接 #

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

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

左(外)连接 #

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

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

右(外)连接 #

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

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

全(外)连接 #

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

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

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 不会去重,会把两张表的数据全部取出。

上一篇:实现限流的几种方案 下一篇:了解下 Protobuf 相关概念