union:将产生的两个记录连接后删除其重复的项;
union all: 将产生的两个记录连接,但不删除其重复的项。
UNION和UNION ALL都是将左右两边的两个结果合为一个,但这两者从使用和效率上来说都有所不同。
UNION在进行记录结果连接后会筛选掉重复的记录,所以在连接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录。
而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。
union all: 将产生的两个记录连接,但不删除其重复的项。
UNION和UNION ALL都是将左右两边的两个结果合为一个,但这两者从使用和效率上来说都有所不同。
UNION在进行记录结果连接后会筛选掉重复的记录,所以在连接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录。
而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。
UNION ALL 要比UNION快很多,如果可两个结果集中不包含重复的数据的话,那么就使用UNION ALL。
补充:intersect交集
union是将记录进行连接,jion是对表进行连接。
Q:Write a SQL statement to find all documents that have more than 300 total terms, including duplicate terms.
A:select docid, sum(count) from frequency group by docid having sum(count)>300;