首页 > 解决方案 > Laravel Eloquent 'WITH' 语句查询

问题描述

如何将此 mysql 查询转换为 Eloquent

with wmh as (select * from whatsapp_message_histories ORDER BY created_at LIMIT 1) 

select DISTINCT whatsapp_histories.*, wmh.created_at from whatsapp_histories

left join wmh on wmh.whatsapp_history_id = whatsapp_histories.id

ORDER BY wmh.created_at

请帮助我,非常感谢!

(已编辑)我的问题是,我有 Eloquent 模型 whatsapp_histories,与 whatsapp_message_histories 有关系(使用 hasMany)。我的目标是需要通过 whatsapp_message_histories.created_at 显示 whatsapp_histories 订单。(这很有说服力,因为我需要显示其他 whatsapp_histories 的关系)。我可以用原生方式解决它,但不能用 eloquent 解决,但我不允许更改以前的 eloquent 代码

标签: laraveleloquent

解决方案


尝试这个:-

whm::with('whatsapp_histories',function($join){
   $join->on('wmh.whatsapp_history_id','=','whatsapp_histories.id');
   $join->orderBy('whatsapp_histories.created_at','ASC');
   $join->limit(1);
})->orderBy('wmh.created_at','ASC)->get();

推荐阅读