gpt4 book ai didi

php - 如果不是整数或日期,如何在查询构建器中获取组中的最后一项?

转载 作者:可可西里 更新时间:2023-11-01 07:38:28 25 4
gpt4 key购买 nike

我正在尝试使用 groupby 获取最后一行,我有一些重复的 jobseeker_id,但不同的是 call_reason、status、type_of_call 等......和 ​​created_at。

id jobseeker_id  type_of_call   status  call_reason        created_at
1 2001 incoming_call good because of track 2017.10.1
2 2001 outgoing call fair they called me 2017.11.2
3 2001 outgoing call bad something 2017.12.3
4 2002 outgoing call good something 2018.11.6

所以我预计只会出来

id jobseeker_id  type_of_call   status  call_reason        created_at
1 2001 outgoing call bad something 2017.12.3
4 2002 outgoing call good something 2018.11.6
这是我的查询

           $jobseekers =DB::table('calllogs')
->select(DB::raw("max(created_at),jobseeker_id,call_reason,type_of_call"))
->orderBy('created_at','desc')
->groupBy('jobseeker_id')
->wherenotnull('call_back_date')
->get();

上面的查询像我这样返回

id jobseeker_id  type_of_call   status  call_reason        created_at
3 2001 incoming_call good because of track 2017.12.3
4 2002 outgoing call good something 2018.11.6

我只能得到最新的 created_at 日期,但我无法得到最新的 staus、type_of_call、call_reason。有人能知道吗?请帮助我。

最佳答案

不熟悉 laravel,但你的问题是你需要用 id 识别行,然后从中选择列。您正在尝试获取最大的 created_at,然后只是获取其余列的分组值。查询看起来像..

SELECT * FROM calllogs WHERE id IN (
(SELECT MAX(ID) FROM calllogs GROUP BY jobseeker_id);

我假设您显示的预期结果中的 id 应该是 3 而不是 1。查询应该至少适用于我能看到的有限集合。可能需要根据您的其余数据添加更多改进,但这应该让您了解什么可能有效。希望这可以帮助。

关于php - 如果不是整数或日期,如何在查询构建器中获取组中的最后一项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47873599/

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