如何分组通过分组上的最新记录

max234435

我要对groupBy('author_id')使用什么Laravel查询,但是要使用最新结果。现在,我尝试的所有方法都将获得第一个结果。我试过使用MAX(id)作为id sql函数,但是没有运气

它会找到记录,找到组中的第一条记录

这是我正在使用的模型查询:

public function lastMessages() {
     return $this->hasMany('App\Message', 'recipient_id')->groupBy('author_id')->orderBy('created_at', 'DESC');
}

我也尝试过:

public function lastMessages() {
     return $this->hasMany('App\Message', 'recipient_id')
         ->select(DB::raw('*, max(id) as id))
         ->groupBy('author_id')
         ->orderBy('id', 'desc');
}

我也尝试过这个,没有运气:

public function lastMessages() {
     return $this->hasMany('App\Message', 'recipient_id')
         ->select(DB::raw('*, max(created_at) as created_at))
         ->groupBy('author_id')
         ->orderBy('created_at', 'desc');
}

以上所有内容将返回组author_id的第一行。我想返回每组的最后一行或最新的一行。我也尝试过-> latest(),没有骰子!

先谢谢您的帮助。

我的桌子:

编号project_id author_id收件人编号id消息已创建_已更新_at

初学者

创建一个子查询联接,该子查询联接将不再需要这种方式的每个作者最新消息ID,因为您已经在联接子查询中获取了每个作者最新消息ID,因此不再需要

不再需要max(created),因为您已经在每个组中获得了最新创建的消息

public function lastMessages() {
    return $this->hasMany('App\Message', 'recipient_id')
         ->select('*')
         ->join(DB::raw('(Select max(id) as id from messages group by author_id) LatestMessage'), function($join) {
            $join->on('messages.id', '=', 'LatestMessage.id');
            })
         ->orderBy('created_at', 'desc');
}

截屏

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

高图通过分组值动态更新图例

来自分类Dev

通过分组在Win 8.1 Gridview中启用虚拟化

来自分类Dev

通过分组优化Python打包

来自分类Dev

通过分组数据对图表进行熊猫循环

来自分类Dev

如何通过使用分组依据语句从表中选择最新记录

来自分类Dev

通过分组,计数和过滤操作收集流

来自分类Dev

通过分组转换列表

来自分类Dev

NHibernate QueryOver通过分组而不选择按列分组

来自分类Dev

如何通过分组获取每周最大每日价值

来自分类Dev

通过分组查找最大值

来自分类Dev

通过分组将数据扩展到新列

来自分类Dev

如何通过分组进行条件查询

来自分类Dev

如何通过分组加入记录

来自分类Dev

如何通过分组合并行并仅在R中保留最高值

来自分类Dev

如何通过分组方式在熊猫中填充NA

来自分类Dev

如何通过分组结果的键获取最大值

来自分类Dev

如何通过分组和筛选来加快SQL Server查询

来自分类Dev

获得分组的最新记录

来自分类Dev

如何通过分组从R数据帧写入JSON对象

来自分类Dev

mysql:分组并获取最新记录

来自分类Dev

通过分组转换列表

来自分类Dev

如何通过分组数据制作数据透视表

来自分类Dev

如何分组记录形式?

来自分类Dev

如何通过分组依据从sql表中获取最大值?

来自分类Dev

SQL查询可通过多个分组获取最新记录

来自分类Dev

通过分组选择不同的属性值

来自分类Dev

如何在不连续范围内跳过分组时对记录进行分组?

来自分类Dev

如何通过分组改进查询?

来自分类Dev

通过分组查找丢失的记录