Laravel Unique仅返回一条记录

时间:2018-04-20 10:23:55

标签: unique laravel-5.6

我有一个作业表和操作员表。 一个操作员可以在作业表上有多个作业记录,而作业只能有一个操作员。

现在我想获得所有运营商最新工作的记录,没有重复。

这是我用过的东西

$availableOperators = DB::table('operator')
                ->join('job','operator.OperatorId', '=', 'job.OperatorId')
                ->where('operator.available',1)
                ->orderBy('job.JobId','desc')
                ->get()
                ->unique('job.OperatorId');

如果没有唯一的查询,我能够看到满足条件的所有记录,但包括它,我只得到它找到的第一条记录而没有其他

请告知我的错误

1 个答案:

答案 0 :(得分:0)

显然,unique只会提供一条记录,我通过使用groupBy来解决它。

$availableOperators = DB::table('operator')
            ->join('job','operator.OperatorId', '=', 'job.OperatorId')
            ->where('operator.available',1)
            ->orderBy('job.JobId','desc')
            ->groupBy('job.OperatorId')
            ->get();