SQL用了Union后的排序问题
最近使用SQL语句进行UNION查询,惊奇的发现:SQL没问题,UNION查询也没问题,都可以得到想要的结果,可是在对结果进行排序的时候,却出问题了。
1.UNION查询没问题
- SELECT `id`,`username`,`mobile`,`time`,id AS leader
- FROM `grouporder_leader`
- WHERE `courseid` = 21 AND `merchid` = 23 AND `status` = 1
- UNION ALL
- SELECT leadorderid,username,mobile,time,null
- FROM `grouporder_partner`
- WHERE courseid=21 and status=1 and merchid=23
结果如下
2.排序就出问题了
- SELECT `id`,`username`,`mobile`,`time`,id AS leader
- FROM `grouporder_leader`
- WHERE `courseid` = 21 AND `merchid` = 23 AND `status` = 1
- ORDER BY time DESC
- UNION ALL
- SELECT leadorderid,username,mobile,time,null
- FROM `grouporder_partner`
- WHERE courseid=21 and status=1 and merchid=23
- ORDER BY time DESC
执行这条SQL语句之后就报错。
3.创建临时表
使用类似于创建临时表的方法保存查询结果,然后对临时表进行查询排序。
- SELECT id,username,mobile,time,leader
- FROM (SELECT `id`,`username`,`mobile`,`time`,id AS leader
- FROM `grouporder_leader` WHERE `courseid` = 21 AND `merchid` = 23 AND `status` = 1
- UNION ALL
- SELECT leadorderid,username,mobile,time,null
- FROM `grouporder_partner` WHERE courseid=21 and status=1 and merchid=23
- )
- ORDER BY time DESC
4.起别名
不知道为什么第3步中查询依旧没有,然后对UNION查询的结果起个别名,然后再查询排序就没问题了。
- SELECT a.id,a.username,a.mobile,a.time,a.leader
- FROM (SELECT `id`,`username`,`mobile`,`time`,id AS leader
- FROM `grouporder_leader` WHERE `courseid` = 21 AND `merchid` = 23 AND `status` = 1
- UNION ALL
- SELECT leadorderid,username,mobile,time,null
- FROM `grouporder_partner` WHERE courseid=21 and status=1 and merchid=23
- ) AS a
- ORDER BY time DESC
结果就正确了
查出来就好说了,再进行去重或者其他操作,也没问题.
- SELECT DISTINCT a.id,a.username,a.mobile,FROM_UNIXTIME(a.time,'%Y/%m/%d') as _time,a.leader
- FROM (SELECT `id`,`username`,`mobile`,`time`,id AS leader
- FROM `grouporder_leader` WHERE `courseid` = 21 AND `merchid` = 23 AND `status` = 1
- UNION ALL
- SELECT leadorderid,username,mobile,time,null
- FROM `grouporder_partner` WHERE courseid=21 and status=1 and merchid=23
- ) AS a
- ORDER BY time DESC
SQL用了Union后的排序问题相关推荐
- 踩坑,union后数据少了
union后数据少了,不能包含重复行 之前一直关注union在两个表的连接后出现的不包含重复行,我这次是在分组数据后进行两个结果集的union.分组后的数据如下,出现了两个时间完全相同的数据,导致了我 ...
- 微软sql服务器关闭了会怎样,sql server 服务启动后 自动关闭 求
当前位置:我的异常网» Sql Server » sql server 服务启动后 自动关闭 求 sql server 服务启动后 自动关闭 求 www.myexceptions.net 网友分享于 ...
- SQL Server 安装好后 Always On群组配置
需要对SQL Server必要的端口打开Windows防火墙的入站规则,比如TCP- 1433端口等. 特别注意:由于AG默认需要用到TCP-5022端口,所以该端口务必保证在Windows防火墙中开 ...
- SQL Server 2000卸载后重新安装的问题
1.安装SQL Server 2000出现"以前进行的程序安装创建了挂起的文件操作"的解决办法: a.在开始->运行中输入regedit b.到HKEY_LOCAL_MACH ...
- SQL Server 2005 安装后,没有Management Studio管理工具的解决办法
如果您在安装SQL Server 2005之前安装了Visual Studio .NET 2005或2008,并且在安装VS时选择了SQL Server 2005 Express,那么很不幸,SQL ...
- C# Winfrom DataGridView DataSource绑定数据源后--解决排序问题
C# Winfrom DataGridView DataSource绑定数据源后--解决排序问题 参考文章: (1)C# Winfrom DataGridView DataSource绑定数据源后-- ...
- SQL SERVER数据库置疑后恢复步骤
--SQL SERVER数据库置疑后恢复步骤 --1. 恢复步骤: --a.将smlog_log.ldf文件备份到其它目录下: --b.将源目录下的smlog_log.ldf文件改名 ...
- Sql Server 2008卸载后再次安装一直报错
sql server 2008卸载之后再次安装一直报错问题. 第一:由于上一次的卸载不干净,可参照百度完全卸载sql server2008 的方式 1. 用WindowsInstaller删除所有与S ...
- 浪潮通软技术论坛--用SQL恢复浪潮数据后的处理问题!!!!
浪潮通软技术论坛--用SQL恢复浪潮数据后的处理问题!!!! 用SQL恢复浪潮数据后的处理问题!!!! 我要恢复的是cwbase1 , 我的SQL备份在原来的电脑上帐套 ...
最新文章
- 数据库启动提示: ORA-27102: out of memory
- 域名状态:运营商设置了客户禁止删除保护?过期域名也不能注册为什么?
- Java连接Elasticsearch6.xxx 代码高亮显示篇四
- axure命令行_axure怎么做计算器
- 微异构Embree照片级光线追踪解决方案
- python开发sqlite3完整_python开发_sqlite3_绝对完整
- 前端-页面性能调试:Hiper
- js 将input、textarea、Select等控件替换成标签(span)
- apusic6.0需要新项目需要改动文件
- Linux下Oracle数据库的启动过程、关闭过程
- Wsus 清理的计划任务
- Android 应用程序签名
- 奔图打印机显示未连接_奔图打印机常见故障及解决方法
- 『原创』老范的XML文档编辑程序——不是一般的山寨!(原创附程序)
- C++常用的大小写转换的方法
- android app 瘦身,android 将程序移入system/app 为系统瘦身
- 如何在阿里云物联网平台新增一个设备
- 第一届程序设计竞赛题解(E题)
- LTE-A载波聚合技术(14)---PHICH
- BIO和NIO有啥区别?为啥要使用-Netty!一文说清!
热门文章
- Sql Server 清除日志的存储过程 Procedure of cleaning sql server's log
- UA MATH564 概率论 多元随机变量的变换 理论与应用2
- UA MATH564 概率论III 期望
- C语言a+++b的问题
- Java 中的字符串(String)与C# 中字符串(string)的异同
- 在Android中使用OpenGL ES开发第(五)节:GLSL基础语法
- Spring常用注解总结
- Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.4
- Android Configuration change引发的问题及解决方法
- 在中国Windows Azure服务中创建应用程序的一些不同之处