• 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是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集。

  • 相关阅读:
    java基础的判断循环
    idea反编译
    JavaWeb
    JavaWeb
    JavaWeb
    JavaWeb
    pycharm使用virtualenv环境
    django常用操作
    Linux下Tomcat的安装以及项目部署
    Linux下JDK的安装
  • 原文地址:https://www.cnblogs.com/zmztya/p/5332205.html
Copyright © 2020-2023  润新知