我有以下查询:
$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'),则重复项消失了,但按顺序排序是错误的。
如何保留排序顺序,但删除重复项?
答案 0 :(得分:0)
没关系。 我已经通过使用集合中的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);