我正在尝试将这个SQL查询变成一个雄辩的查询,但我在口才中的经验和知识有点缺乏 . 我很想学习如何自己解决这个问题,但我尝试过的所有解决方案都失败了,而且我在 生产环境 环境中遇到了问题 .
基本上我有一个收件箱系统,我将数据库中的所有邮件分组到发件人ID . 我希望它通过发送ID对其进行分组,并显示发件人的最新消息 .
我已经设法让它只使用原始SQL .
SELECT * FROM `messages` WHERE id IN(
SELECT MAX(id)
FROM `messages`
WHERE `recieveid` = 1
GROUP BY `sendid`
) ORDER BY `created_at` DESC
但是,我不确定如何使用模型将其变成雄辩的声明 . 我目前正在使用这样简单的东西,但它没有按时间排序,所以它可能会遗漏一些消息 .
$getMessages = \App\Message::where("recieveid", Auth::user()->id)-
>orderBy("id","desc")->groupBy("sendid")->get(10);
1 回答
希望这对你有所帮助!