1.UNION的作用

 UNION 指令的目的是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。 union只是将两个结果联结起来一起显示,并不是联结两个表………… UNION 的语法如下: [SQL 语句 1]
  假设我们有以下的两个表格,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
有一点值得注意的是,如果我们在任何一个 SQL 语句 (或是两句都一起) 用 "SELECT DISTINCT Date" 的话,那我们会得到完全一样的结果。

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

同样假设我们有以下两个表格, 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
 
 而我们要找出有店面营业额以及网络营业额的日子。要达到这个目的,我们用以下的 SQL 语句:
  SELECT Date FROM Store_Information UNION ALL SELECT Date FROM Internet_Sales 结果: 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

3.更多sql示例
   --合并重复行
 select * from A
 union
 select * from B
 
 
 --不合并重复行
 select * from A
 union all
 select * from B
 
 
 按某个字段排序
 --合并重复行
 select *
 from (
 select * from A
 union
 select * from B) AS T
 order by 字段名
 
 --不合并重复行
 select *
 from (
 select * from A
 union all
 select * from B) AS T
 order by 字段名

//sql server(WINDOWS平台上强大的数据库平台)版
  Select * From (
  select top 2 id,adddate,title,url from bArticle where ClassId='1' order by adddate desc) A
  Union All
  Select * From (
  select top 2 id,adddate,title,url from bArticle where ClassId='2' order by adddate desc) B
  Union All
  Select * From (
  select top 2 id,adddate,title,url from bArticle where ClassId='3' order by adddate desc) C
  Union All
  Select * From (
  select top 2 id,adddate,title,url from bArticle where ClassId='4' order by adddate desc) D
  
  
  //MySQL(和PHP搭配之最佳组合)版
  Select * From (
  select id,adddate,title,url from bArticle where ClassId='1' order by adddate desc limit 0,2) A
  Union All
  Select * From (
  select id,adddate,title,url from bArticle where ClassId='2' order by adddate desc limit 0,2) B
  Union All
  Select * From (
  select id,adddate,title,url from bArticle where ClassId='3' order by adddate desc limit 0,2) C
  Union All
  Select * From (
  select id,adddate,title,url from bArticle where ClassId='4' order by adddate desc limit 0,2) D

SQL使用union合并查询结果(转载)的更多相关文章

  1. SQL多表合并查询结果

    两表合并查询,并同时展示及分页SELECT a.* FROM ( ( SELECT punycode, `domain`, 'Success' AS state, add_time, AS refun ...

  2. 7-11使用UNION合并查询

    合并查询的语法: SELECT ...FROM  表名一 UNION SELECT ...FROM 表名二 合并查询的特点: 1: 合并表中的列的个数,数据类型数据类型相同或兼容. 2:UNION 默 ...

  3. 使用union合并查询

    语法: select …..from 表1 union select ……from 表2 2. 合并查询的特点 ① 合并的表中的列的个数.数据类型必须相同或向兼容. ② union默认去掉重复值,如果 ...

  4. sql 用union合并合并查询结果

    合并操作与连接相似,因为他们都是将两个表合并起来的另一个表的方法,然而他们的合并方法有本质的区别, 合并是两个表的相加,连接时时两个表的相乘: 01 在合并中两个表原列的数量与数据类型必须相同:在连接 ...

  5. 数据库原理实验指导(三)使用SQL语言进行简单查询【转载csdn】

    --1.查询全体学生的学号和姓名select sno,sname from student --2.查询全体学生的详细记录select * from student --3.查询软件学院的学生姓名,年 ...

  6. 2个或多个datable类似于sql inner join 合并查询

    public static DataTable DatableInnerJoin(DataTable FirstTB, DataTable SecondTB, DataColumn[] FJC, Da ...

  7. Linq连接查询之左连接、右连接、内连接、全连接、交叉连接、Union合并、Concat连接、Intersect相交、Except与非查询

    内连接查询 内连接与SqL中inner join一样,即找出两个序列的交集 Model1Container model = new Model1Container(); //内连接 var query ...

  8. mysql 中合并查询结果union用法 or、in与union all 的查询效率

    mysql 中合并查询结果union用法 or.in与union all 的查询效率 (2016-05-09 11:18:23) 转载▼ 标签: mysql union or in 分类: mysql ...

  9. oracle 基础SQL语句 多表查询 子查询 分页查询 合并查询 分组查询 group by having order by

    select语句学习 . 创建表 create table user(user varchar2(20), id int); . 查看执行某条命令花费的时间 set timing on: . 查看表的 ...

随机推荐

  1. Json序列化之.NET开源类库Newtonsoft.Json

    上代码: using System; using System.Collections; using System.Collections.Generic; using System.IO; usin ...

  2. Node Redis 小试

    Redis 是一个高性能的 key-value 数据库,为了保证效率,数据都是缓存在内存中,在执行频繁而又复杂的数据库查询条件时,可以使用 Redis 缓存一份查询结果,以提升应用性能. 背景 如果一 ...

  3. 《转》ceilometer的数据採集机制入门

    问题导读 1.ceilometer负责什么事情? 2.ceilometer 有哪些概念? 3.ceilometer 怎样採集hardware? 附上openstack 官网API   http://d ...

  4. putty自带工具plink自动登陆ssh

    PLINK.EXE -C -N -D 127.0.0.1:7000 root@111.111.111.111  -pw 123456 解释成中文: PLINK.EXE -启用数据压缩 -不要shell ...

  5. <LeetCode OJ> 234. Palindrome Linked List

    Total Accepted: 40445 Total Submissions: 148124 Difficulty: Easy Given a singly linked list, determi ...

  6. iconv 解决乱码问题

    [root@NGINX-APACHE-SVN pro]# file 林.txt 林.txt: ISO-8859 text, with no line terminators #在LINUX下显示乱码 ...

  7. Java 之进制转换

    //十进制转十六进制 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scan ...

  8. FMC—扩展外部 SDRAM

    本章参考资料:< STM32F4xx 参考手册 2>.< STM32F4xx 规格书>.库帮助文档< stm32f4xx_dsp_stdperiph_lib_um.chm ...

  9. echarts报表

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...

  10. UCOS2系统内核讲述(二)_初始化调用函数

    Ⅰ.写在前面 学习本文之前可以参看我前面的文章: UCOS2_STM32F1移植详细过程(汇总文章) UCOS2系统内核讲述(一)_总体描述 还是按照上一篇文章的思维(从外到内),本文(结合源代码)进 ...