2017-10-30 14 views
1

私はlaravelのclaim_company_idでグループ化されたテーブルの最大claim_idを取得するのに助けが必要です。ここで Laravel Subグループの最大クエリ

は出力が

2 - 1 - 1/2/2010 
5 - 7 - 1/5/2010 

する必要がありますテーブルのサンプル

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) 

あるしかし、私はこのクエリを実行すると

$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 
です

今は1日止まっています。何か案は?

答えて

1

私はwhereRawを使用してコードを実行する必要がありましたが、これはこのように動作します。 将来の参照のための応答

$query = DB::table('claims') 
      ->whereRaw('claim_id in (select max(claim_id) from claims group by (claim_company_id))') 
      ->get(); 
関連する問題