sql group排序问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql group排序问题相关的知识,希望对你有一定的参考价值。

SELECT * FROM `bookcontent` group by book_id
bookcontent是用来存放图书内容的一个表,其中图书内容是根据图书ID一章一章连载的,我现在想把最新每本书更新的最新章节给抓出来,使用了如下语句:SELECT * FROM `bookcontent` group by book_id order by addtime desc,
可是这样抓出来的结果并不是我想要的,这样只能抓出最早插入的图书章节记录,怎么才能抓出最后插入的记录呢
补充下,假如数据表如下:
table: bookcontent

id title book_id addtime
1 a 1 2008-2-1
2 b 1 2008-3-1
3 c 1 2008-4-1
4 a 2 2008-2-5
5 b 2 2008-3-5
6 c 2 200-4-5
如何同时只抓出
3 c 1 2008-4-1
6 c 2 200-4-5

这两条记录

这样写:
select * form bookcontent,(select book_id_a,addtime_a=max(addtime) from bookcontent group by book_id)a where book_id_a=book_id,addtime_a=addtime)
参考技术A 我只是一个建议 我这没有SqlServer

select top 1 from bookcontent group by book_id order by addtime desc
参考技术B 建议你用游标试试

以上是关于sql group排序问题的主要内容,如果未能解决你的问题,请参考以下文章

SQL中的group by为啥是按照分组的第二个字段排序的呢?

sql中 group by排序

SQL中查询多个字段时,GROUP BY 要怎么使用?

使用Order By NULL 解决 group by后自动排序,优化Sql性能

SQL 按计数排序

SQL实现group by 分组后组内排序