首页 > 解决方案 > SQL 查询到 Laravel Eloquent

问题描述

我在下面有这个查询,我想将它转换为 Laravel Eloquent。我试过没有成功。

select A.client_id, max(A.purchase_date)
from gym_client_purchases A
left Join gym_clients B on B.id = A.client_id
group by A.client_id
order By max(A.purchase_date) desc

我试过这个,但我从每个用户那里得到了最旧的记录。

$this->data['expiringSubscriptions'] = Gym::select('first_name', 'last_name', 'gym_client_purchases.*')
->leftJoin('gym_clients', 'gym_clients.id', '=', 'client_id')
->groupBy('client_id')
->orderBy('gym_client_purchases.purchase_date', 'desc')
->get(); 

谁能指导我转换我的查询?

谢谢你。

标签: phpsqllaravel

解决方案


您没有提到任何模型,所以这里使用的是查询生成器。

$results = DB::table('gym_client_purchases gcp')
    ->selectRaw('gcp.client_id, MAX(gcp.purchase_date) AS max_purchase_date')
    ->leftJoin('gym_clients gc', 'gc.id', '=', 'gcp.client_id')
    ->groupBy('gcp.client_id')
    ->orderBy('max_purchase_date', 'desc');

还没有运行它 - 但这应该基本上是它。


推荐阅读