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

标签 php mysql laravel

我正在尝试使用 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/

相关文章:

mysql - 如何在mysql中选择一个时间段?

reactjs - 类型错误 : "NetworkError when attempting to fetch resource."

php - 无法在使用 Lavacharts 创建的 Laravel 5.1 中呈现折线图

php - 找不到两位数的月份 Laravel 中缺少数据

php - Eloquent 查询返回按集合中的值分组的数组的总和

mysql - 特定类别字段的数据库布局

javascript - 根据文本框值显示 div

mysql - 如何修复 "Incorrect string value"错误?

php - htaccess 强制 https 并在没有子域的情况下将非 www 重定向到 www

javascript - 使用 Javascript 预加载数组