Laravel 子查询最大分组依据

Rey*_*nte 5 php join laravel eloquent

我需要帮助来获取由 laravel 中的 claim_company_id 分组的表的最大 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)
Run Code Online (Sandbox Code Playgroud)

输出应该是

2 - 1 - 1/2/2010
5 - 7 - 1/5/2010
Run Code Online (Sandbox Code Playgroud)

但是当我运行这个查询时

$query = DB::table('claims')    
                    ->groupBy('claim_company_id')
                    ->get( ['claims.*','claim_company_id',DB::raw('MAX(claim_id) as claim_id_new')]);
Run Code Online (Sandbox Code Playgroud)

结果是

1 - 1 - 1/1/2010
3 - 7 - 1/3/2010
Run Code Online (Sandbox Code Playgroud)

我现在卡了一天。有任何想法吗?

Rey*_*nte 7

所以我需要使用 whereRaw 来运行代码,但事实证明它是这样工作的。回答以备将来参考

$query = DB::table('claims') 
             ->whereRaw('claim_id in (select max(claim_id) from claims group by (claim_company_id))')
             ->get();
Run Code Online (Sandbox Code Playgroud)