两者都是将数据集集合显示,但是使用场景有所不同
显示数据集的结果有所不同:
union会自动过滤掉重复的数据进行集合显示,一般取第一个表的数据显示,第二个表的结果就不显示了,union all则是不做任何处理将两个表的所有结果集显示出来。
对重复结果和排序的处理方式不同:
union处理结果没有重复的数据,并且会按照字段的顺序进行排序;union all只是粗暴的将两个结果集全部显示,数据会有重复,执行效率也比union高,
徐亚特别注意的是:
1、union和union all在使用的时候,关联查询的表并不局限与两个表,理论上讲是无数个,但是前提是表的结构和字段必须保持一致an'l
2、union和union all查询,表的列名可以不同,但是数量和列的类型必须一致,否则会报错的
示例sql:
直接上sql了,返回结构需要自行验证了!
可以验证列名相同、列名不同、列的类型不同、有重复数据等情况下的使用对比
SELECT 列名a, 列名b, ... FROM 表名1
UNION
SELECT 列名c, 列名d, ... FROM 表名2;
SELECT 列名a, 列名b, ... FROM 表名1
UNION ALL
SELECT 列名c, 列名d, ... FROM 表名2;
数据查询工具推荐使用navicat、plsql、sqlyog等,都是可以的