我认为这是best solution。然而,这种查询是解决不了我的问题 - 我有一个像这样的表:mysql在群组之前排序
+--+-------+-----+
|id|user_id|score|
+--+-------+-----+
|1 |1 |5 |
+--+-------+-----+
|2 |1 |16 |
+--+-------+-----+
|3 |1 |15 |
+--+-------+-----+
查询:
SELECT *
FROM (`_scorboard`)
GROUP BY `user_id`
HAVING `score` = MAX(score)
ORDER BY `score` desc
result 0 rows
为什么它返回0的记录?
这甚至执行? 'SELECT * ... GROUP BY ...'是一件很奇怪的事情! – 2011-05-08 23:04:54
[这里](http://stackoverflow.com/questions/5140785/mysql-order-before-group-by/5140943#5140943),这样的解决方案是由 – alioygur 2011-05-08 23:10:04
给出的,我这样解决它,但我不认为(t2.firstname,'',t2.lastname)AS全名 FROM(SELECT * FROM _scorboard ORDER BY score DESC)AS t1 LEFT JOIN _user_profile AS t2 ON(t1。 user_id = t2.user_id) GROUP BY t1.user_id LIMIT 0,20 – alioygur 2011-05-08 23:12:56