数据库的 join 连接类型

数据库的 join 连接类型

Sep 30, 2017
数据库, MySQL

内连接 #

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

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

本文共 247 字,上次修改于 Jan 16, 2024,以 CC 署名-非商业性使用-禁止演绎 4.0 国际 协议进行许可。

相关文章

» Vagrant 虚拟机 Ubuntu16.04 安装 MariaDB

» Ubuntu 下部署 Django 应用