【发布时间】:2021-06-25 06:04:46
【问题描述】:
我需要帮助来获取在 laravel 中由 report_type_id 分组的表的最大 data_date。所以为了得到这个,我这样写了我的查询
$latest_reports = Filelist::
whereRaw('data_date in (select max(data_date) from filelists GROUP BY (report_type_id))')
->where('access_id','=',$retailer_supplier_id->id)
->get();
这是我的桌子,请看一下
id access_id filename report_type_id data_date
1 16 filename1 6 2021-02-01
2 16 filename2 6 2021-01-01
3 16 filename3 6 2021-03-01
4 16 filename4 6 2021-04-01
5 16 filename5 7 2021-03-01
6 16 filename6 7 2021-05-01
我得到这样的结果
id access_id filename report_type_id data_date
1 16 filename1 6 2021-02-01
3 16 filename3 6 2021-03-01
4 16 filename1 6 2021-04-01
我想得到这样的结果
id access_id filename report_type_id data_date
4 16 filename4 6 2021-04-01
6 16 filename6 7 2021-05-01
【问题讨论】:
-
为什么不使用 order by desc 然后按报告 id 分组
-
@Rafee 我已经完成了
$latest_reports = Filelist:: select('report_type_id',DB::raw('filename,max(data_date) as latest_date')) ->where('access_id','=',$retailer_supplier_id->id) ->groupBy('report_type_id') ->orderBy('data_date','desc') ->get();但它不起作用