Mysql之group by 和order by 一起用时的排序问题

业务需求,需要查询表里不同分类下的order最大的记录。

查看表中的记录:

SELECT id,tid,`order`, FROM_UNIXTIME(yestime) FROM tfen 
WHERE tid IN(7512, 7514) 
ORDER BY `order` DESC ;

结果如下:

排序的sql语句:

SELECT id,tid,`order`, FROM_UNIXTIME(yestime) FROM tfen
WHERE tid IN(7512, 7514) 
GROUP BY tid 
ORDER BY `order` DESC ;

 返回的结果:

 不是自己想要的结果。

执行下面的sql:

SELECT id,tid,`order`,FROM_UNIXTIME(yestime) FROM (
SELECT * FROM tfen WHERE tid IN(7512, 7514) ORDER BY `order` DESC 
) AS t 
GROUP BY tid;

返回的结果:

这两条才是最终的结果。

猜你喜欢

转载自blog.csdn.net/zcd3f/article/details/84767206