简体   繁体   English

使用UNION语句进行双重ORDER BY排序

[英]Double ORDER BY sort with UNION statement

(
SELECT * 
FROM (

SELECT d
FROM myTable
WHERE id =  "4h"
AND d <  "2011-12-08 12:00:00"
ORDER BY d DESC 
LIMIT 10
)tmp
ORDER BY d ASC
)
UNION (

SELECT d
FROM myTable
WHERE id =  "4h"
AND d >=  "2011-12-08 12:00:00"
ORDER BY d ASC 
LIMIT 10
)

I'm trying to get the 10 results before and after a particular ID by using two SELECT statements and a UNION . 我试图通过使用两个SELECT语句和一个UNION来获取特定ID之前和之后的10个结果。 The first SELECT uses ORDER BY DESC to get the 10 preceding and then I attempt to envelope that in a second ORDER BY ASC to get all the results in ASC order but for some reason it does not work. 第一个SELECT使用ORDER BY DESC来获取前面的10个然后我尝试在第二个ORDER BY ASC中包含该信息以获得ASC顺序中的所有结果但由于某种原因它不起作用。

Here is what I get currently for a result: 以下是我目前得到的结果:

d
2011-12-08 08:00:00
2011-12-08 04:00:00
2011-12-08 00:00:00
2011-12-07 20:00:00
2011-12-07 16:00:00
2011-12-07 12:00:00
2011-12-07 08:00:00
2011-12-07 04:00:00
2011-12-07 00:00:00
2011-12-06 20:00:00 <- These top 10 results should ASC!
2011-12-08 12:00:00
2011-12-08 16:00:00
2011-12-08 20:00:00
2011-12-09 00:00:00
2011-12-09 04:00:00
2011-12-09 08:00:00
2011-12-09 12:00:00
2011-12-09 16:00:00
2011-12-09 20:00:00
2011-12-11 20:00:00

And here is what I want: 这就是我想要的:

d
2011-12-06 20:00:00
2011-12-07 00:00:00
2011-12-07 04:00:00
2011-12-07 08:00:00
2011-12-07 12:00:00
2011-12-07 16:00:00
2011-12-07 20:00:00
2011-12-08 00:00:00
2011-12-08 04:00:00
2011-12-08 08:00:00
2011-12-08 12:00:00
2011-12-08 16:00:00
2011-12-08 20:00:00
2011-12-09 00:00:00
2011-12-09 04:00:00
2011-12-09 08:00:00
2011-12-09 12:00:00
2011-12-09 16:00:00
2011-12-09 20:00:00
2011-12-11 20:00:00
(
  SELECT   d
  FROM     myTable
  WHERE    id = '4h' AND d <  '2011-12-08 12:00:00'
  ORDER BY d DESC
  LIMIT    10
) UNION ALL (  
  SELECT   d
  FROM     myTable
  WHERE    id = '4h' AND d >= '2011-12-08 12:00:00'
  ORDER BY d ASC
  LIMIT    10
)
ORDER BY d ASC

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM