union、union all操作符和左连接、右连接、内连接

UNION 和 UNION ALL 操作符

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

SQL UNION 语法
SELECT column_name(s) FROM table_name1

SQL UNION ALL 语法
SELECT column_name(s) FROM table_name1

UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名

union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序。
Union在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表Union。

Union All:对两个结果集进行并集操作,包括重复行,不进行排序。

如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。

内连接、左连接和外连接

内连接

关键字:inner join on
语句:select * from a_table a inner join b_table bon a.a_id = b.b_id;

组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分。

左连接

关键字:left join on / left outer join on
语句:select * from a_table a left join b_table bon a.a_id = b.b_id;

left join 是left outer join的简写,它的全称是左外连接,是外连接中的一种。
左(外)连接,左表(a_table)的记录将会全部表示出来,而右表(b_table)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。

右连接

关键字:right join on / right outer join on
语句:select * from a_table a right outer join b_table b on a.a_id = b.b_id;

right join是right outer join的简写,它的全称是右外连接,是外连接中的一种。
与左(外)连接相反,右(外)连接,左表(a_table)只会显示符合搜索条件的记录,而右表(b_table)的记录将会全部表示出来。左表记录不足的地方均为NULL。

你可能感兴趣的:(union、union all操作符和左连接、右连接、内连接)