(六)MySQL数据库-常用连接查询(UNION、JOIN)

(六)MySQL数据库-常用连接查询(UNION、JOIN)

我的系统版本为CentOS7.5,MySQL版本为5.7.26

为了更清楚的说明各个连接查询的差异,新建两个表数据如下

(六)MySQL数据库-常用连接查询(UNION、JOIN)

UNION 连接

将两个SQL语句去交集去重

select name from a union select name from b;

(六)MySQL数据库-常用连接查询(UNION、JOIN)

INNER JOIN (内连接)

此语句的结果为同时匹配表a和表b的记录集。即内连接取的是两个表的交集,可以简写为JOIN

#以下两个语句等价
select a.id,a.name,b.age from a join b on a.name=b.name;
select a.id,a.name,b.age from a , b where a.name=b.name;

(六)MySQL数据库-常用连接查询(UNION、JOIN)

LEFT JOIN (左连接)

此语句的结果为表a的所有项加表b与a相匹配的项,b中没有与a匹配的项时显示为null

select a.id,a.name,b.age from a left join b on a.name=b.name;

(六)MySQL数据库-常用连接查询(UNION、JOIN)

RIGHT JOIN (右连接)

此语句的结果为表a与表b匹配的项加表b的所有项,a中没有与b匹配的项时显示为null

select a.id,a.name,b.age from a right join b on a.name=b.name;

(六)MySQL数据库-常用连接查询(UNION、JOIN)MySQL不支持全外连接