能实现吗? [解决办法] select * from ( select top 10 id,title,time,kid from News where kid = 1 UNION select top 6 id,title,time,kid from News where kid = 5 UNION select top 8 id,title,time,kid from News where kid = 3 UNION select top 8 id,title,time,kid from News where kid = 7 UNION select top 6 id,title,time,kid from News where kid = 6 UNION select top 10 id,title,time,kid from News where kid = 2 ) ORDER BY time DESC 你是相对整体排序吧 [解决办法]
你需要再对union之后的查询结果在排序。
select b.* from ( select top 10 id,title,time,kid from News where kid = 1 ORDER BY time DESC UNION select top 6 id,title,time,kid from News where kid = 5 ORDER BY time DESC UNION select top 8 id,title,time,kid from News where kid = 3 ORDER BY time DESC UNION select top 8 id,title,time,kid from News where kid = 7 ORDER BY time DESC
UNION select top 6 id,title,time,kid from News where kid = 6 ORDER BY time DESC UNION select top 10 id,title,time,kid from News where kid = 2 ORDER BY time DESC ) b order by b.time desc