当前的表为 article,部分数据如下
| id | user_id | cat_id | title |
|---|---|---|---|
| 1 | 2 | 3 | aaaaa |
| 2 | 2 | 4 | aaaa |
| 3 | 3 | 4 | aaaaaa |
| 4 | 3 | 4 | aaaa |
| 5 | 4 | 5 | aaaa |
| 6 | 4 | 6 | aaa |
当前业务需要查询最新的N个帖子,但是N个帖子中同一个用户发的文章只显示一条最新的文章,使用以上数据查询的话会得到ID为: 6,4,2的帖子。
问题来了:这个SQL怎么写?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
不知道这个是不是你要的结果呢:SELECT max(id),title from test GROUP BY user_id

DEMO: http://sqlfiddle.com/#!2/1c794/1/0
select * from (select * from article order by id desc) as a group by a.user_id order by a.id desc;先用自查询对article进行一个排序,然后再用group by限定用户