UNION 和 UNION ALL 操作符 使用总结
1、UNION操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
值得注意的是UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
UNION 语法结构如下:
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2;
默认地,UNION 操作符选取不同的值,也就是说查询结果不包含重复的数据。另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
2、UNION ALL操作符
UNION ALL 语法
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2;
UNION ALL 查询结果是包含重复值的。
3、UNION 和 UNION ALL 性能上的区别
UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。
UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。
而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。
从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL