如何按顺序和desc选择组?

时间:2013-03-03 13:53:00

标签: mysql database select

我想在表中选择数据,以便它应该按用户ID对其进行分组,除了该列中的一个值,并按日期时间和desc排序。 我得到的问题是分组的项目不按日期和时间以desc方式排序。 我的意思是分组项目显示在前面的行。 我怎样才能做到这一点。 这就是我所做的。

SELECT * FROM `tbljobs`
   GROUP BY user_id
   UNION ALL 
     SELECT * FROM tbljobs
     WHERE user_id = '1'
     ORDER BY date_time DESC
     LIMIT 20"

其中“1”不应分组。

2 个答案:

答案 0 :(得分:1)

您的ORDER BY仅在第二个语句上执行。您必须使用大括号来排序整个结果:

(SELECT *
FROM `tbljobs`
GROUP BY user_id)
UNION ALL 
(SELECT *
FROM tbljobs
WHERE user_id = '1')
ORDER BY date_time DESC

答案 1 :(得分:0)

感谢各位朋友的建议。最后,经过大量努力,我自己创建了解决方案。

(
 SELECT * 
 FROM (
       SELECT * 
       FROM tbljobs 
       ORDER BY date_time desc 
      ) AS A 
 WHERE user_id <> '1' group by user_id 
) 
UNION ALL 
(
 SELECT * 
 FROM tbljobs 
 WHERE user_id=1
) 
ORDER BY date_time DESC