UNION的语法结构:

SELECT ...

UNION [ ALL | DISTINCT ]  SELECT ....

[ UNION [ ALL | DISTINCT ] SELECT .....]

UNION 用于将多个SELECT语句中的结果组合到单个结果集中。

1 第一个SELECT语句用的列名称用作返回结果的列名称

其中第一个select中查询的列名为user_name,第二个select中查询的列名为password,但显示的结果列名称只有user_name

在多个select语句中,对应的列应该具有相同的数据类型,如果相应的select猎德数据类型不匹配,则union结果中列的类型和长度会考虑所有的select语句检索的值

UNION DISTINCT   和 UNION ALL 

UNION DISTINCT 组合俩个输入,并应用DISTINCT过滤重复的行,一般DISTINCT可以省略,因为UNION默认是删除结果中重复的行。UNION ALL不会删除重复的行,结果包括所有SELECT语句中所有的匹配行

SELECT * FROM T1 WHERE   = 10 UNION ALL SELECT * FROM T1 WHERE a = 10;

查询出来的结果会有俩分相同的数据(这里就不做实际例子了)

UNION 中使用  ORDER BY 和 LIMIT 

要对单个select语句应用ORDER BY 或 LIMIT ,请将子句放在括号括住的select语句中:

(select a from t1 where a = 10 order by a limit 10)

union

(select * from t2 where a = 11 order by a limit 10);

但要注意的是,ORDER BY 对于单个SELECT 语句的使用并不意味着在最终结果中进行排序,因为UNION默认情况下会生成一组无序的结果集。因此这里要使用ORDER BY 通常会结合LIMIT使用,来确定要取出的行的数量,如果只用了ORDER BY 没有配合使用LIMIT,那么ORDER BY 会被优化掉,因为它不会有任何效果

如果想整个结果集使用ORDER BY 或 LIMIT 进行排序或限制,请将各个SELECT语句括起来并把ORDER BY 或 LIMIT  放在最后:

(select a from t1 where a = 10 )

union

(select a from t2 where a = 11)

order by a limit 10;

但要注意上面的这种情况ORDER BY引用的列名不能包含表名(例如:table_name.col_name)

此外,如果要排序的列是别名,则该ORDER BY子句必须引用别名,而不是列名。以下第一个语句将起作用,但第二个语句将失败并显示 Unknown column 'a' in 'order clause'错误:

(SELECT a AS b FROM t) UNION (SELECT ...) ORDER BY b;

(SELECT a AS b FROM t) UNION (SELECT ...) ORDER BY a;

如果相在整个结果集中对每个SELECT的结果集排序,请在每个SELECT中选择一个附加列用以排序,并ORDER BY在最后添加一下内容:

(SELECT 1 AS sort_col, col1a, col1b, ... FROM t1)

UNION

(SELECT 2 AS sort_col,col2a, col2b, ... FROM t2) ORDER BY sort_col;

要在单个SELECT结果中另外维护排序顺序 ,请在ORDER BY子句中添加辅助列:

(SELECT 1 AS sort_col, col1a, col1b, ... FROM t1)

UNION

(SELECT 2, col2a, col2b, ... FROM t2) ORDER BY sort_col, col1a;

mysql语法之union的更多相关文章

  1. MySQL 常用语法 之 UNION与UNION ALL

    下面讲一下mySql中的union和union all 的功能以及区别 A union B 是将表A的数据和表B的数据连接成一张表,前提是查询的两张表的列数一定要一样否则出错. A union all ...

  2. 【转】Mysql联合查询union和union all的使用介绍

    Mysql的联合查询命令UNION和UNION ALL,总结了使用语法和注意事项,以及学习例子和项目例子,需要的朋友可以参考下 一.UNION和UNION ALL的作用和语法 UNION 用于合... ...

  3. mysql中的union操作(整理)

    mysql中的union操作(整理) 一.总结 一句话总结: union两侧的字段数和字段类型要是一样的 union可以接多个 orderby和排序可以在最后的union组合之后 1.union简单实 ...

  4. MYSQL 语法大全自己总结的

    mysql语法大全 --------数据链接---------------------数据库服务启动net start mysql --关闭服务net stop mysql --登录 -u,-p后面不 ...

  5. 学习mysql语法--基础篇(一)

      前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分:    一.创建用户,创建数据库,给 ...

  6. 学习mysql语法--基础篇(二)

      前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: [SQL语句的组成]   DML ...

  7. mysql语法之case when then与列转行

    mysql语法中case when then与列转行的使用场景非常丰富. case语句类似java中条件分支语句的作用,可以类比java中的switch语句或者if语句来学习. 其语法如下: case ...

  8. mongo 与 传统mysql语法对比

    MongoDB语法                                  MySql语法 db.test.find({'name':'foobar'})<==> select ...

  9. Mongodb与mysql语法比较

    Mongodb与mysql语法比较   mongodb与mysql命令对比 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由 ...

随机推荐

  1. 自定义web框架(django)

    Django基础了解知识 HTTP协议(超文本传输协议) HTTP协议 四大特性: 基于TCP/IP之上作用于应用层 基于请求响应 无状态 引申出cookie session token-- 无连接 ...

  2. Python前言之Markdown使用

    一.Markdown基本语法 1.1标题 代码: # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 效果: 一级标题 二级标题 三级标题 ...

  3. Spring Cloud微服务安全实战_3-8_API安全之登录

    前面的文章 https://www.cnblogs.com/lihaoyang/p/11967121.html  说了用过滤器实现HttpBasic 认证 ,在请求头里携带用户名和密码,存在的问题是, ...

  4. 在分页中,删除操作后,AJAX重载刷新当前页

    需求 分页中,在 删除 和 编辑 完成后,AJAX重载刷新 当前页 ,而不是跳转到 第一页 实现步骤 添加两个的 input 控件,用来存储 当前页数 和 记录总条数(非必须,能有方法获取到这两个值即 ...

  5. 使用zeebe DebugHttpExporter 查看zeebe 工作流信息

    zeebe 提供了一个DebugHttpExporter 可以方便的查看部署以及wokrflow 运行信息 以下是一个简单的运行试用,同时集成了prometheus,添加了一个简单的grafana d ...

  6. luogu P2221 [HAOI2012]高速公路题解

    题面 很套路的拆式子然后线段树上维护区间和的题.一般都是把式子拆成区间内几个形如\(\sum i*a_i, \sum i^2 * a_i\)的式子相加减的形式. 考虑一次询问[l,r]的答案怎么算: ...

  7. 15 张 Vim 速查表奉上,帮你提高N倍效率!

    阅读本文大概需要 2.8 分钟. 去年上半年开始全面使用linux进行开发和娱乐了,现在已经回不去windows了. 话归正传,在linux上一直使用vim,慢慢熟悉了它的命令,才终于领悟了什么是编辑 ...

  8. java对接微软认证,用oauth2.0实现

    由于官网所说所写的demo比较官方,比较难理解,而且只能到获取到token阶段,没有用户到用户信息.就算理解官网所写的,但是还是不能获取到用户信息,这对于业务系统做单点对接,增加很大的难度,附件代码是 ...

  9. react 16 Hooks渲染流程

    useState react对useState进行了封装,调用了mountState. function useState<S>( initialState: (() => S) | ...

  10. 动手学深度学习9-多层感知机pytorch

    多层感知机 隐藏层 激活函数 小结 多层感知机 之前已经介绍过了线性回归和softmax回归在内的单层神经网络,然后深度学习主要学习多层模型,后续将以多层感知机(multilayer percetro ...