sql语句的问题,Union后排序排出来 总是乱的。要实

先查询出课程开课时间小于当前时间数据并按开课时间进行排序,完了再查开课时间大于当前时间的数据,按开课时间正序排。我写的语句:SELECTco.*from(SELECT*F... 先查询出课程开课时间小于当前时间数据并按开课时间进行排序,完了再查开课时间大于当前时间的数据,按开课时间正序排。
我写的语句:
SELECT co.* from
(SELECT * FROM
(SELECT * FROM `course` WHERE `status` = 1 and begin_tm-unix_timestamp(SYSDATE()) <=0 and end_tm-unix_timestamp(SYSDATE())>=0 ORDER BY `course`.begin_tm) as a
UNION SELECT * FROM
(SELECT * FROM `course` WHERE `status` = 1 and begin_tm-unix_timestamp(SYSDATE()) >0 and end_tm-unix_timestamp(SYSDATE())>0 ORDER BY `course`.begin_tm) as b
)as co where status=1
但为什么查出来排序 个别的数据是乱的呢
展开
 我来答
百度网友4461b7e
2017-04-20 · TA获得超过925个赞
知道小有建树答主
回答量:541
采纳率:57%
帮助的人:254万
展开全部
楼主好,我大致懂你的意思,你应该是想要把两个子查询的数据合并后,然后再排序的。而你的排序出来不对的原因是你在你的两个子查询当中分别做了排序。那么数据库执行后的结果就会是排序后再合并。所以你总是觉得是乱的。你先把子查询合并,然后在b表后面合并就不会这样子了。只用一个order by就可以了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式