表分组排序问题

MySql 码拜 8年前 (2016-07-12) 1168次浏览
有一张表结构如图,id为主键,是自增列
需求:1、让相同uid值的记录显示到一起
2、同时整组按这个组中的最大id排序(例如图中uid为9的记录的最大id是726,uid为10的记录的最大id是829,uid为11的记录的最大id是858,那么就查询结果就要先显示uid为11的记录,接下来显示uid为10的记录,最后显示uid为9的记录;假如再插入一条uid为10的记录,这条记录的id为859,此时uid为10的记录的最大id变为859,那么查询结果的显示顺序就是先显示uid为10的记录,然后显示uid为11的记录,最后显示uid为9的记录)
这个查询语句应该怎么写?
表分组排序问题
解决方案

40

SELECT 
T1.id, T1.uid,  T1.`......`
FROM tbl01 AS T1
LEFT JOIN
(
  SELECT MAX(id) AS tid, uid 
    FROM tbl01 GROUP BY uid
) AS T2
ON T1.uid = T2.uid
ORDER BY T2.tid DESC, T1.id DESC

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明表分组排序问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)