概述

MySQL数据库支持两种集合操作:UNION DISTINCT和UNION ALL。 UNION DISTINCT组合两个输入,并应用DISTINCT过滤重复项,一般可以直接省略DISTINCT关键字,直接使用UNION。 在多个SELECT语句中,对应的列应该具有相同的字段属性,且第一个SELECT语句中被使用的字段名称也被用于结果的字段名称。


建表数据

为了更好的理解,造了下面mysql的两张表和一些数据。两张表中的数据其实是一样的(比较懒了,^_^),表及表字段略加改动。

create table name( id int(4) not null auto_increment comment 'key', name varchar(16) not null comment 'Name', agend int(1) comment 'agend', PRIMARY key(id))ENGINE=INNODB DEFAULT charset='utf8' comment 'name';insert into name(name,agend) values('ck1','1');insert into name(name,agend) values('ck2','0');insert into name(name,agend) values('ck3','1');insert into name(name,agend) values('ck4','0');insert into name(name,agend) values('ck1','1');create table name2( id2 int(4) not null auto_increment comment 'key', name2 varchar(16) not null comment 'Name', agend2 int(1) comment 'agend', PRIMARY key(id2))ENGINE=INNODB DEFAULT charset='utf8' comment 'name2';insert into name2(name2,agend2) values('ck1','1');insert into name2(name2,agend2) values('ck2','0');insert into name2(name2,agend2) values('ck3','1');insert into name2(name2,agend2) values('ck4','0');insert into name2(name2,agend2) values('ck1','1');

union distinct

其实union 相当于 union distinct,个人觉得写全比较好,不要偷懒。

当A查询中有数据a,B查询中有数据a,对两个查询使用union distinct方法,那么查询结果只有一条数据a记录。

举例如下:

(select * from name where name = 'ck1' AND agend = '1') UNION DISTINCT (SELECT * from name2 where agend2 = '1');union distinct

union all

当A查询中有数据a,B查询中有数据a,对两个查询使用union all方法,那么查询结果会出现两条数据a。

举例如下:

(SELECT * from name2 where agend2 = '1') UNION ALL (select * from name where name = 'ck1' AND agend = '1');

说明:

1、当A查询中有数据a,B查询中有数据a,不管对两个查询使用union all/distinct方法,查询结果的字段展示是根据union all/distinct前的查询结果字段展示的。例如前面union all,查询语句为:

(SELECT * from name2 where agend2 = '1') UNION ALL (select * from name where name = 'ck1' AND agend = '1');

那么展示的字段是 name2 表中的字段。

2、union all 在使用UNION DISTINCT的时候,由于向临时表中添加了唯一索引,插入的速度显然会因此而受到影响。如果确认进行UNION操作的两个集合中没有重复的选项,最有效的办法应该是使用UNION ALL。


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

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序。

Union在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表Union。

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

后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

union distinct_当面试官问你UNION 和UNION ALL之间的区别时该怎么答?相关推荐

  1. 面试官问你想找什么工作_找工作时如何面试面试官

    面试官问你想找什么工作 在技​​术面试中要问的十二个问题 (Twelve questions to ask at tech interviews) I've just come off six wee ...

  2. 当面试官问我ArrayList和LinkedList哪个更占空间时,我这么答让他眼前一亮

    前言 今天介绍一下Java的两个集合类,ArrayList和LinkedList,这两个集合的知识点几乎可以说面试必问的. 对于这两个集合类,相信大家都不陌生,ArrayList可以说是日常开发中用的 ...

  3. 面试官问你final、finally、finalize的区别

    final final关键字可以用来修饰变量,被修饰的变量为常量,一旦被定义就不能再被修改. final double PI = 3.14; 定义全局常量一般用public static final修 ...

  4. 后处理程序文件大小的变量_【每日一题】(17题)面试官问:JS中事件流,事件处理程序,事件对象的理解?...

    关注「松宝写代码」,精选好文,每日一题 作者:saucxs | songEagle 2020,实「鼠」不易 2021,「牛」转乾坤 风劲潮涌当扬帆,任重道远须奋蹄! 一.前言 2020.12.23 立 ...

  5. 手写Vuex核心原理,再也不怕面试官问我Vuex原理

    手写Vuex核心原理 文章目录 手写Vuex核心原理 一.核心原理 二.基本准备工作 三.剖析Vuex本质 四.分析Vue.use 五.完善install方法 六.实现Vuex的state 七.实现g ...

  6. 当面试官问你“你期望的薪酬是多少”时,实际上是在问什么?

    1 最近总有人问我这样的问题.虽然我曾经已在各个不同的场合回答了不下5遍. 在辞职带娃之前,我在一家大型的教育机构工作了7年. 七年中,各个工种,比如人事,教研,咨询,市场等等,都有过了解和涉猎.带过 ...

  7. 面试官问:如果MySQL引起CPU消耗过大,你会怎么优化

    转载自  面试官问:如果MySQL引起CPU消耗过大,你会怎么优化 谁在消耗cpu? 用户+系统+IO等待+软硬中断+空闲 祸首是谁? 用户 用户空间CPU消耗,各种逻辑运算 正在进行大量tps 函数 ...

  8. 面试官问:select......for update会锁表还是锁行?

    欢迎关注方志朋的博客,回复"666"获面试宝典 select查询语句是不会加锁的,但是select .......for update除了有查询的作用外,还会加锁呢,而且它是悲观锁 ...

  9. 面试官问:数据库 delete 表数据,磁盘空间还是被一直占用,为什么?

    以下文章来源方志朋的博客,回复"666"获面试宝典 最近有个上位机获取下位机上报数据的项目,由于上报频率比较频繁且数据量大,导致数据增长过快,磁盘占用多. 为了节约成本,定期进行数 ...

最新文章

  1. statspack系列8
  2. 海峡两岸消防专家论坛台湾举行
  3. html中剪切图片所用插件,简单功能强大的jQuery图片剪裁插件Image Cropper
  4. java快递下单模块,Java开发快递物流项目(7)
  5. html5 将id的值用于top_web前端分享HTML5常见面试题集锦四
  6. 中兴助印尼Smartfren测试大规模MIMO技术
  7. 【保证能用】Ubuntu创建一个正常权限的用户
  8. php日历天气预报下载安装手机桌面_手机桌面时钟日历天气
  9. 独创圆柱形投影,索尼高透光HOE全息显示方案详解
  10. 南开大学计算机学院博士毕业要求,南京大学博士研究生申请学位科研成果基本要求...
  11. Dahua Lin recommended math book
  12. UVA 1646 Edge Case
  13. 终于我用JOL打破了你对java对象的所有想象
  14. 沙盘游戏作文培训感悟
  15. 国内MEMS企业、研究所以及科研院校
  16. 老牌系统:雨一直下win7主题
  17. moment 与 moment.unix 区别 moment用法
  18. 找不到wpcap.dll解决方法
  19. 程序员的财务自由之路(一)- 扬帆起航
  20. 云计算机服务包括哪些,云计算服务有哪些?

热门文章

  1. windows环境里React-Native运行失败,找不到Nullable的原因分析
  2. UI5 metadata usage in the runtime
  3. 关于SAP Cloud Platform ABAP环境费用的问题
  4. why the SalesOrder header note is read only
  5. SAP CRM WebClient UI BSP server event
  6. Java语言学习之泛型的用法
  7. 如何修改微软powerpoint模板文字
  8. 关于SAP CRM Organization Unit组织结构单元自动决定的一些调试
  9. 为什么我的C4C Service Request没办法Release到ERP?
  10. 动态分区分配的“首次适应算法_kafka集群关于资源分配的手册