我有以下简单查询来尝试获取每module
的最后更新行:
$distincts = SerialNumber::where('company_id', Auth::user()->active_company_id)
->groupBy('module')
->orderBy('updated_at', 'desc')
->get();
这并不像我想要的那样工作。 module
组中的每一行都不会按updated_at
排序(这是一个日期时间戳)。
如何为组中的每一行使用orderBy
?谢谢你的阅读!
以下是有效的,但这是一个非常糟糕的解决方案:
$distincts = array();
$modules = SerialNumber::select('module')
->where('company_id', Auth::user()->active_company_id)
->groupBy('module')
->pluck('module');
foreach ($modules as $mod) {
$se = SerialNumber::where('company_id', Auth::user()->active_company_id)
->where('module', $mod)
->orderBy('updated_at', 'desc')
->first();
$distincts[] = $se;
}
答案 0 :(得分:1)
您需要的是子查询:
read.csv(file)
这使您只获得组中的最新记录。