1: 什么时候用union和union all ?

      我们经常会碰到这样的应用,两个表的数据按照一定的查询条件查询出来以后,需要将结果合并到一起显示出来,这个时候

就需要用到union和union all关键字来实现这样的功能,union和union all的主要区别是union all是把结果集直接合并在一起,而

union 是将union all后的结果镜像一次distinct,去除重复的记录后的结果。   

    看下面的例子:

查询一:

查询二:

两个结果集进行union all为(直接将两个查询结果集合并):

 两个结果集镜像union 运算结果为(两个结果集合并后进行去重/distinct):

总结: 在xwwd项目中由于还款计划表(tb_laon_repayment)数据量巨大(数量2000万),

查询一条借款的还款计划时候巨慢,当时为了解决查询慢问题就建立了一张还款计划

备份表(tb_loan_repayment_his),将还款计划表tb_loan_repayment中的已经结清

的借款的还款计划数据导出1000万到了还款计划备份表tb_loan_repayment_his中,

这样做解决了还款计划表tb_loan_repayment中数据过大导致查看借款loan详情时展示

查询该笔借款loan的还款计划查询卡死的情况。    后来由于项目需要需要查询备份表中的数据,

于是对内管查看借款详情接口进行了优化升级。 获取具体某一条还款计划的时候首先查询

还款计划表tb_laon_repayment如果没有再去查询还款计划备份表tb_loan_repayment_his.

同时“借款管理”菜单中是去分页查询所有还款计划,为了数据完整性,

这里就采用了union联合查询tb_loan_repayment,和tb_tb_repayment_his表。

  

Mysql union和union all用法的更多相关文章

  1. MySQL UNION 与 UNION ALL 语法与用法

    MySQL UNION 语法 MySQL UNION 用于把来自多个 SELECT 语句的结果组合到一个结果集合中.语法为: SELECT column,... FROM table1 UNION [ ...

  2. MySQL全连接(Full Join)实现,union和union all用法

    MySQL本身不支持你所说的full join(全连接),但可以通过union来实现 ,下面是一个简单测试,可以看看: mysql> CREATE TABLE a(id int,name cha ...

  3. mysql union 与 union all 语法及用法

    1.mysql   union  语法 mysql   union 用于把来自多个select  语句的结果组合到一个结果集合中.语法为: select  column,......from tabl ...

  4. 【连接查询】mySql多表连接查询与union与union all用法

    1.准备两个表 表a: 结构: mysql> desc a; +-------+-------------+------+-----+---------+-------+ | Field | T ...

  5. 【转】Mysql联合查询union和union all的使用介绍

    Mysql的联合查询命令UNION和UNION ALL,总结了使用语法和注意事项,以及学习例子和项目例子,需要的朋友可以参考下 一.UNION和UNION ALL的作用和语法 UNION 用于合... ...

  6. mysql中的union操作(整理)

    mysql中的union操作(整理) 一.总结 一句话总结: union两侧的字段数和字段类型要是一样的 union可以接多个 orderby和排序可以在最后的union组合之后 1.union简单实 ...

  7. union和union all用法

    工作中,遇到同事之前写的oracle语句中有一个union all,并且很多地方都用到了.便在网上查了一下用法,以下是自己的理解. union  (联合)将两个或者多个结果集合并. 在使用时,两个结果 ...

  8. union内嵌struct用法

      // union内嵌struct用法 // 众所周知,union为联合体,struct为结构体.下面根据实例谈谈用法   #include <stdio.h>   #include & ...

  9. MySQL中UNION和UNION ALL的使用

    在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同. MySQL中的UNION UNION在进行表链接后会筛选掉重复的记录,所以在表链接后 ...

随机推荐

  1. List和Array相互转换

    List<String> list = new ArrayList<String>(); list.add("1"); list.add("2&q ...

  2. 让remix使用本地文件系统

    让remix使用本地文件系统   转:https://blog.csdn.net/platocnet/article/details/83376792 1. 测试发现使用npm命令安装相关环境不成功, ...

  3. TypeScript泛型类 - 把类作为参数类型的泛型类

    /* TypeScript泛型类 - 把类作为参数类型的泛型类 */ /* 泛类:泛型可以帮助我们避免重复的代码以及对不特定数据类型的支持(类型校验),下面我们看看把类当做参数的泛型类 1.定义个类 ...

  4. spark ml pipeline构建机器学习任务

    一.关于spark ml pipeline与机器学习一个典型的机器学习构建包含若干个过程 1.源数据ETL 2.数据预处理 3.特征选取 4.模型训练与验证 以上四个步骤可以抽象为一个包括多个步骤的流 ...

  5. sqllite 学习-1

    C# SQLite 数据库操作学习: https://www.cnblogs.com/leemano/p/6578050.html SQLite 之 C#版 System.Data.SQLite 使用 ...

  6. MFC加载大型osg模型

    MFC加载模型,发现打开 Navid 缓冲等选项后,加载大型模型的速度就快了很多. #include "stdafx.h" #include "OSGObject.h&q ...

  7. Spring cloud微服务安全实战-5-4请求转发及退出

    步骤1234已经完成 下面处理 5678这几步.zuul在转发的时候 把请求头加上 获取订单信息 加一个按钮,登陆成功后,去拿订单的信息. 展示获取到的订单信息 ts代码 ts内定义order对象 定 ...

  8. 算法习题---5.6团体队列(Uva540)

    一:题目 有t个队伍的人正在排队,每次新来一个人,如果他有队友在排队,那他可以插队,直接排到他的队伍的末尾.如果没有队伍在前面,那么他直接排在长队的末尾 ENQUEUE x 将编号x的队员入队 DEQ ...

  9. (?:pattern) 与 (?=pattern)的区别

    共同点 (?:pattern) 与 (?=pattern)都匹配pattern,但不会把pattern结果放到Matches的集合中. 区别 (?:pattern) 匹配得到的结果包含pattern. ...

  10. boost写的异步客户端样例代码修改为支持断开重连的代码

    考虑到boost的工业级强度,因此就直接用了,代码的官方示例地址:https://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/examples/ ...