【发布时间】:2014-07-23 20:18:16
【问题描述】:
我在我的 Laravel 网站上使用与 Facebook 消息服务相同的外观进行内部消息服务。
所以,我想要一个汇总所有对话的部分。为此,我想按用户检索最新消息。
我在我的 SQL 请求中尝试过这个
$users = DB::table('users')
->join('messages', 'users.id', '=' ,'messages.useridsend')
->select('users.name', 'users.photo', 'messages.*')
->where('messages.useridreceive', $id)
->groupby('messages.useridsend')
->max('messages.created_at');
【问题讨论】:
-
这是一个很好的解决方案,但它只返回我所有数据库中最新的,而不是每个 id。可能是因为 max() 的使用不当。我试图删除 orderby() 并用 max('messages.created_at') 替换 get()。
-
不,他在 where() 和 max() 之间。我编辑我的主题以向您展示我的新代码
-
使用rank() by 可能是个好主意。
标签: sql database select laravel