数据库的 join 连接类型
9月 30, 2017
注意:此文章已超过 1 年未更新,部分信息可能已经过时。
内连接#
内连接为默认连接方式,只有两张表都匹配的行才显示。
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 不会去重,会把两张表的数据全部取出。