SQL:union 和 union all
来源:互联网 发布:票乎 编辑:程序博客网 时间:2024/06/03 21:17
- ## 数据库表 ##
使用Mysql 5.7版本进行验证。 - ## sql查询 ##
UNION是将多个结果连接在一起,需要注意保持连接的结果列的数量需要保持相同。UNION会以第一个的列的名称进行返回结果,在使用的时候需要多加注意,例如:
SELECT grade,id,NAMEFROM studentUNIONSELECT id,NAME,gradeFROM studentWHERE id < 2===============结果==================grade id name------------------------------------10 1 Allen90 2 Lol50 3 meil89 4 lily1 Allen 10
首先UNION查询
SELECT id,name,gradeFROM studentUNIONSELECT id,name,gradeFROM student ;===============结果==================id name grade------------------------------------1 Allen 102 Lol 903 meil 504 lily 89
使用UNION ALL
SELECT id,name,gradeFROM studentUNION ALLSELECT id,name,gradeFROM student;===============结果==================id name grade------------------------------------1 Allen 102 Lol 903 meil 504 lily 891 Allen 102 Lol 903 meil 504 lily 89
从上面可以看出,UNION和UNION ALL的区别在于对重复结果的处理。
再来试一试select不同的顺序是否对查询结果有什么影响
一、SELECT id,name,gradeFROM studentWHERE id < 2UNION SELECT id,name,grade FROM studentWHERE id > 1;===============结果==================id name grade------------------------------------1 Allen 102 Lol 903 meil 504 lily 89二、SELECT id,NAME,gradeFROM studentWHERE id > 1UNIONSELECT id,NAME,gradeFROM studentWHERE id < 2;===============结果==================id name grade------------------------------------2 Lol 903 meil 504 lily 891 Allen 10
结果是相同的,可见,sql语句的顺序是不影响结果的。但是两次结果的顺序却是不一样的。两次查询到的结果是第一条sql的查询结果在前,第二条的sql查询结果在后进行排序。
那么如何对结果进行自定义排序呢?
对结果可使用order by进行排序,但是order by需要在最后使用,在第一个SQL中使用,则会出现错误。
一、SELECT id,NAME,gradeFROM studentorder by id descUNIONSELECT id, NAME, gradeFROM studentWHERE id < 2;===============结果==================[Err] 1221 - Incorrect usage of UNION and ORDER BY二、SELECT id,NAME,gradeFROM studentUNIONSELECT id,NAME,gradeFROM studentWHERE id < 2order by id desc;===============结果==================id name grade------------------------------------4 lily 893 meil 502 Lol 901 Allen 10三、SELECT id,NAME,gradeFROM studentUNIONSELECT id,NAME,gradeFROM studentWHERE id < 2===============结果==================id name grade------------------------------------1 Allen 102 Lol 903 meil 504 lily 89
UNION的自动排序规则暂未研究。
阅读全文
0 0
- SQL UNION 和 UNION ALL
- SQL UNION 和 UNION ALL
- SQL UNION ALL和UNION
- sql union和union all
- SQL Union和Union all
- SQL UNION 和 UNION ALL
- SQL UNION 和 UNION ALL
- SQL UNION 和 UNION ALL
- SQL UNION 和 UNION ALL
- SQL:union 和 union all
- SQL Union和SQL Union All用法
- SQL Union和SQL Union All用法
- SQL Union和SQL Union All用法
- SQL Union和SQL Union All用法
- SQL Union和SQL Union All用法
- SQL Union和SQL Union All用法
- SQL Union和SQL Union All用法
- SQL Union和SQL Union All
- 【STM32】安装库文件
- 2017 ACM Arabella Collegiate Programming Contest A. Sherlock Bones GYM101350A
- Python-tkinter第一个游戏--弹弹弹的小球
- win32下多线程同步方式之临界区,互斥量,事件对象,信号量
- [leetcode] 66. Plus One
- SQL:union 和 union all
- 基于zookeeper搭建solr 集群 之添加文本域
- 每天一个linux命令(8):cp 命令
- 机器学习算法---随机森林实现(包括回归和分类)
- Android 2.3.3 Gradle sync failed: Failed to find Build Tools revision 25.0.0
- leetCode_237. Delete Node in a Linked List
- Linux下多线程同步方式之互斥量,信号量,条件变量
- LINUX安装ORACLE常见问题
- 身份证实名认证接口,实名认证API接口文档