php - 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();
谁能指导我转换我的查询?
谢谢你。
解决方案
您没有提到任何模型,所以这里使用的是查询生成器。
$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');
还没有运行它 - 但这应该基本上是它。
推荐阅读
- typescript - TS2339:“元素”类型上不存在属性“msMatchesSelector”
- ios - 当我更改数据源中的项目数时,UIcollection 视图崩溃
- sed - sed命令将逗号分隔的字符串分成一定的长度
- node.js - 会话实体在对话流的用户实体解析中的使用
- c# - 将空字段从数据表写入 xml 文件
- java - 如何在 Jetty 中添加重试到端口绑定
- laravel - Laravel:1060 运行迁移时列名重复
- c# - 使用委托和事件在 Unity 中创建事件管理器(消息系统)
- powershell - 如何在 PowerShell 中转义和替换“\”
- react-native - react-native 0.57.4,`_typeof3 is an instance of Object`错误