gpt4 book ai didi

laravel - 如何在查询生成器 laravel 上获取每个组的多个数据

转载 作者:行者123 更新时间:2023-12-02 20:27:06 24 4
gpt4 key购买 nike

a16s表

id  p_id u_id   time
1 1 2 0
2 1 1 1
3 1 5 2
4 1 6 3
5 1 7 4
6 2 2 2
7 2 3 1
8 2 1 0
9 3 2 11
10 3 4 8
11 3 8 15

我想要得到每组的前两个数据按时间排序

p_id u_id time
1 2 0
1 1 1
2 1 0
2 3 1
3 4 8
3 2 11

我尝试查询

  $result = DB::table('a16s')

->select ('p_id','u_id','time'))
->orderBy('time', 'desc')
->groupBy('p_id')
->get();

echo '<pre>' ;
print_r($result);

我收到错误SQLSTATE[42000]:语法错误或访问冲突:1055 SELECT 列表的表达式 #2 不在 GROUP BY 子句中并且包含非聚合列...

我可以使用groupby两次吗?我想得到这个结果以在 jquery 数据表上使用。

来自数据库

id  p_id    u_id    approve time
1 1 1 1 1
2 1 2 1 2
3 1 3 1 3
4 1 4 0 4
5 1 5 0 5
6 2 1 0 1
7 2 2 1 2
8 2 5 0 3
9 2 6 0 4
10 3 2 1 1
11 3 5 1 2
12 3 8 1 3

获取表格 enter image description here

最佳答案

试试这个

$result = DB::table('a16s')
->select('p_id', 'u_id', 'time')
->orderBy('time', 'desc')
->get()
->groupBy('p_id')
->map(function ($deal) {
return $deal->take(2);
});

关于laravel - 如何在查询生成器 laravel 上获取每个组的多个数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49608961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com