laravel - 使用 Eloquent 选择每组结果中的最后一行
问题描述
我有以下Example
模型数据:
id | object_id | value | updated_at
------------------------------------------------------
1 | 1 | 200 | 2021-04-19 01:00:00
2 | 2 | 1200 | 2021-04-08 01:00:00
3 | 3 | 9000 | 2021-04-07 01:00:00
4 | 1 | 100 | 2021-04-10 01:00:00
5 | 2 | 900 | 2021-04-13 01:00:00
6 | 3 | 8000 | 2021-04-12 01:00:00
我想获取按 object_id 分组的最新更新行,例如:
id | object_id | value | updated_at
------------------------------------------------------
1 | 1 | 200 | 2021-04-19 01:00:00
5 | 2 | 900 | 2021-04-13 01:00:00
6 | 3 | 8000 | 2021-04-12 01:00:00
如何使用 Eloquent 实现该结果?
解决方案
你试试?
$users = User::orderBy('updated_at','DESC')
->groupBy('object_id')
->get();
推荐阅读
- mysql - mariadb 错误 2026 (HY000): SSL 连接错误: 不支持的协议
- pandas - Python Pandas:添加两个数据框的缺失行并保留额外的列
- web - SearchLight 包是否使用连接池?
- json - 在 Flutter 中从 Web 获取 JSON
- mongodb - Mongo DB - 如何根据供应商获取组产品?
- mongodb - mongodb 2级聚合
- responsive - flexslider 中的图像无法响应地工作
- reactjs - 如何销毁当前屏幕并导航到另一个屏幕?这样在后按时不会出现上一个屏幕
- python - 为什么 Jupyter Notebook 输出从右到左显示数组
- django - 在 Django2 上汇总总和