zoukankan      html  css  js  c++  java
  • Mysql union和union all用法

    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表。

      

     

  • 相关阅读:
    java 读取文件内容 方法
    Linux常见问题解答--如何修复“tar:Exiting with failure status due to previous errors”
    FTPbug
    linux shell 字符串操作(长度,查找,替换)详解
    mysqldump参数详细说明
    Win7下的内置FTP组件的设置详解
    FTPAPI
    Linux文件传输FTP详解
    linux 利用shell将当前时间写入文件
    IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能
  • 原文地址:https://www.cnblogs.com/ganbo/p/10803786.html
Copyright © 2011-2022 走看看