我有一个作业表和操作员表。 一个操作员可以在作业表上有多个作业记录,而作业只能有一个操作员。
现在我想获得所有运营商最新工作的记录,没有重复。
这是我用过的东西
$availableOperators = DB::table('operator')
->join('job','operator.OperatorId', '=', 'job.OperatorId')
->where('operator.available',1)
->orderBy('job.JobId','desc')
->get()
->unique('job.OperatorId');
如果没有唯一的查询,我能够看到满足条件的所有记录,但包括它,我只得到它找到的第一条记录而没有其他
请告知我的错误
答案 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();