我有以下查询:
$recentTasks = Task::where('assigned_to','=',$user->id)->join('task_comments','task_comments.task_id','=','tasks.id')->orderBy('task_comments.updated_at','DESC')->select('tasks.*')->limit(10)->get();
我需要的是最近有评论的任务列表。所以我加入了评论表并按它排序。它有效,最近评论的任务位于顶部。但它有重复项,因此一个任务可以多次出现。如果我插入 ->distinct(( 或 ->distinct('tasks.id'(,那么重复项就消失了,但按顺序排序是错误的。
如何保持排序顺序但删除重复项?
没
关系。我已经通过在集合中使用 unique 解决了这个问题:
$recentTasks = Task::where('assigned_to','=',$user->id)->join('task_comments','task_comments.task_id','=','tasks.id')->orderBy('task_comments.updated_at','DESC')->select('tasks.*')->get()->unique('id')->slice(0,10);