zoukankan      html  css  js  c++  java
  • sql union和union all的用法及效率

    一:Union指令的目的是将两个sql语句的结果合并起来。

    假设我们有以下的两个表格: 
    Store_Information 表: store_name      Sales      Date 


                                  Los Angeles     $1500      Jan-05-1999 
                                  San Diego       $250       Jan-07-1999 
                                  Los Angeles     $300       Jan-08-1999 
                                   Boston          $700       Jan-08-1999 


    Internet Sales 表:    Date            Sales 


               Jan-07-1999     $250 
               Jan-10-1999     $535 
               Jan-11-1999     $320 
               Jan-12-1999     $750 

    如果我们要找出来所有有营业额 (sales) 的日子。要达到这个目的,我们用以下的 SQL 语句: 
    SELECT Date FROM Store_Information 
    UNION 
    SELECT Date FROM Internet_Sales 

    结果: 
      Date 
      Jan-05-1999 
      Jan-07-1999 
      Jan-08-1999 
      Jan-10-1999 
      Jan-11-1999 
      Jan-12-1999 

    UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。

     

    UNION ALL 这个指令的目的也是要将两个 SQL 语句的结果合并在一起。 UNION ALL 和 UNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复。

    如果上述的例子我们只用UNION ALL的话,则结果会是:

        Date 
      Jan-05-1999 
      Jan-07-1999 
      Jan-08-1999 
      Jan-08-1999 
      Jan-07-1999 
      Jan-10-1999 
      Jan-11-1999 
      Jan-12-1999 

    总结:union是将具有相同结果的数据合并起来,同时会去掉所有重复的数据。

    二:JOIN与UNION区别

    join 是两张表做交连后里面条件相同的部分记录产生一个记录集

    union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集。

  • 相关阅读:
    VS2017试用期到期后登录微软账户出现错误解决方法
    Unable to start process "dotnet-projectmodel-server" while starting VS2015 问题
    如何写.gitignore只包含指定的文件扩展名
    Win7 通过Smb共享CentOS文件步骤
    Linux下用sudo 命令时出现 is not in the sudoers file
    ubuntu下安装chorme浏览器
    qt for ios扫描二维码功能实现
    ubuntu14.04登陆后只显示桌面文件,快速启动栏不显示,终端不能打开
    编译 Qt with Openssl for IOS
    sql print原理
  • 原文地址:https://www.cnblogs.com/zmztya/p/5332205.html
Copyright © 2011-2022 走看看