我需要帮助才能获得在laravel中按照claim_company_id分组的表的max claim_id。
这是表格样本
claim_id claim_company_id Date
1 1 1/1/2010
2 1 1/2/2010
3 7 1/3/2010
4 7 1/4/2010
5 7 1/5/2010
SELECT * FROM `claims`
WHERE
claims.claim_id in (SELECT max(claim_id) from claims GROUP by claim_company_id)
输出应为
2 - 1 - 1/2/2010
5 - 7 - 1/5/2010
但是当我运行此查询时
$query = DB::table('claims')
->groupBy('claim_company_id')
->get( ['claims.*','claim_company_id',DB::raw('MAX(claim_id) as claim_id_new')]);
结果是
1 - 1 - 1/1/2010
3 - 7 - 1/3/2010
我现在卡住了一天。任何想法?
答案 0 :(得分:3)
所以我需要使用whereRaw来运行代码,但事实证明它是这样的。 回答以后的参考
$query = DB::table('claims')
->whereRaw('claim_id in (select max(claim_id) from claims group by (claim_company_id))')
->get();