当前位置:   article > 正文

Union和Union All的用法

union all

Union和Union All主要是用来做多个表查询结果的合并。

区别在于:

Union:结果去重

Union All:结果不去重

例子:有班级1和班级2,分别将学生信息存放在表class1,class2中。表的结构和数据如下:

  1. create table class1(
  2. sno int primary key,
  3. sname varchar(20)
  4. );
  5. create table class2(
  6. sno int primary key,
  7. sname varchar(20)
  8. );
  9. insert into class1 values(1,"张三"),(2,"李四");
  10. insert into class2 values(3,"张三"),(4,"王五");

1.当我想统计两个班级学生名字有哪些种类,可以使用Union,结果是去重的。

  1. select sname from class1
  2. union
  3. select sname from class2;
  4. //解释:
  5. 1.select sname from class1是从class1表中查询所有名字,结果={张三,李四}
  6. 2.select sname from class2是从class2表中查询所有名字,结果={张三,王五}
  7. 3.union让两次查询的结果合并在一起,且去重,因为class1和class2都有“张三”这个名字,只在结果中放入一个即可,结果={张三,李四,王五}

查询结果:

可以看到两个班级有3种名字

2.当我想看两个班级所有的学生的姓名时,可以使用Union All,结果是不去重的。

  1. select sname from class1
  2. union all
  3. select sname from class2;
  4. //解释:
  5. 1.select sname from class1是从class1表中查询所有名字,结果={张三,李四}
  6. 2.select sname from class2是从class2表中查询所有名字,结果={张三,王五}
  7. 3.union all让两次查询的结果合并在一起,且不去重,即使class1和class2都有“张三”这个名字,也不做处理,只需把所有结果放在一起即可,结果={张三,李四,张三,王五}

 查询结果:

 

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号