sql union和union all的用法及效率 以及与join的区别

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

时间: 2024-10-10 19:04:54

sql union和union all的用法及效率 以及与join的区别的相关文章

sql中union和union all的用法

如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称为联合)的作用是将多个结果合并在一起显示出来. union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复. union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序:union在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删

MySQL UNION 与 UNION ALL 语法与用法

1.MySQL UNION 语法 MySQL UNION 用于把来自多个 SELECT 语句的结果组合到一个结果集合中.语法为: SELECT column,... FROM table1 UNION [ALL] SELECT column,... FROM table2 ... 在多个 SELECT 语句中,对应的列应该具有相同的字段属性,且第一个 SELECT 语句中被使用的字段名称也被用于结果的字段名称. 1.1.UNION 与 UNION ALL 的区别 当使用 UNION 时,MySQ

解决部分月份绩效无法显示的问题:timestamp\union al\autocommit等的用法

绩效部同事反映部分员工绩效在查询时无法显示,并给出了两个工号.这两个工号对应绩效全部正常审批完成,但在绩效管理模块却无法显示.绩效管理采用分页查询,查询语句为: <!-- 绩效查询集合  --> <select id="queryList" resultMap="PerformanceResultMap"  parameterType="com.fx.oa.module.per.performance.api.shared.domain.

SQL UNION 和 UNION ALL 操作符

SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 SELECT 语句中的列的顺序必须相同. SQL UNION 语法 SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2 注释:默认地,UNION 操作符选取不同的值.如果允许重复的

Sql中的union和union all的讲解

SQL UNION 和 UNION ALL操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 SELECT 语句中的列的顺序必须相同. 假设我们有一个表Student,包括以下字段与数据: drop table student; create table student(id int primary key,name nvarchar2(50) not null,s

sql中Union和union all的使用

该文转载自:http://www.cnblogs.com/chaobaojun/archive/2009/12/24/1631508.html 在MS-SQL如果将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行,常用的方法如下: 一.       使用union 或union All语句 1.   union 与 union all语句的区别 ?         UNION 组合多个表(或结果集)并将其作为单个结果集返回; ?         UNION ALL 

SQL union和union all的区别

Union因为要进行重复值扫描,所以效率低.如果合并没有刻意要删除重复行,那么就使用Union All  两个要联合的SQL语句 字段个数必须一样,而且字段类型要“相容”(一致): 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称为联合)的作用是将多个结果合并在一起显示出来. union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管

SQL UNION 和 UNION ALL 操作符\SQL SELECT INTO 语句\SQL CREATE DATABASE 语句

SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 SELECT 语句中的列的顺序必须相同. SQL UNION 语法 SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2 注释:默认地,UNION 操作符选取不同的值.如果允许重复的

图解SQL的inner join、left join、right join、full outer join、union、union all的区别

转自:http://blog.csdn.net/jz20110918/article/details/41806611 假设我们有两张表.Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同的,如下所示:让我们看看不同JOIN的不同 A表 id name 1 Pirate 2 Monkey 3 Ninja 4 Spaghetti B表 id name 1 Rutabaga 2 Pirate 3 Darth Vade 4 Ninja 1.INNER