Laravel 分组获取数据后 每个分组获取 2 条最新的数据

需求:
每个分组的分类 获取2条最新的数据
数据库:

id     title     body     bind_category_id            created_at
1     标题1  内容1              1                        2019年11月18日13:45:56
2     标题2  内容2              1                        2019年11月18日13:45:57
3     标题3  内容3              2                        2019年11月18日13:45:58
4     标题4  内容4              3                        2019年11月18日13:45:59
5     标题5  内容5              3                        2019年11月18日13:45:60
6     标题6  内容6              3                        2019年11月18日13:45:61

实现后 获取到的数据 (也就是根据bind_category_id 分组后,每组去除 最新更新的数据)

id     title     body     bind_category_id            created_at
1     标题1  内容1              1                        2019年11月18日13:45:56
2     标题2  内容2              1                        2019年11月18日13:45:57
3     标题3  内容3              2                        2019年11月18日13:45:58
5     标题5  内容5              3                        2019年11月18日13:45:60
6     标题6  内容6              3                        2019年11月18日13:45:61
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 8

:joy: 感觉自己的mysql 好薄弱

8个月前 评论

请了解一下 Mysql 的 having 关键字

8个月前 评论
liuhaiqiang999 (楼主) 8个月前
青风百里
Category::query()
    ->with(['post' => function ($q) {
        return $q->orderBy('created_at')->limit(2);
    }])
    ->get();
8个月前 评论
liuhaiqiang999 (楼主) 8个月前
liuhaiqiang999 (楼主) 8个月前
liuhaiqiang999 (楼主) 8个月前
忽而今夏 5个月前
忽而今夏 5个月前
青风百里 (作者) 5个月前

select
from table a
where 2>(select count(
) from table where bind_category_id=a.bind_category_idand created_at>a.created_at)
order by a.bind_category_idand ,a.created_at desc

8个月前 评论

你可以看一下这个博客,可能会对你有所帮助。
https://n3xtchen.github.io/n3xtchen/postgr...

8个月前 评论
liuhaiqiang999 (楼主) 8个月前
青风百里

大概是这样,你要按照自己的改一下。

Category::query()
    ->with(['articles' => function ($q) {
        return $q->orderBy('created_at')->limit(2);
    }])
    ->get();
8个月前 评论

SELECT from test where id not in(select MAX(id) from test GROUP BY bind_category_id HAVING count() >1)

8个月前 评论
青风百里

@青风百里 这个方法是错误的。

5个月前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!