Select DISTINCT returns 重复数据 Laravel 8

Select DISTINCT returns duplicates data Laravel 8

我正在尝试为主管显示属于他的组。我正在使用 join 获取基于 supervisor_id 的每个 gpid 信息,查询它没问题,但 returns 最后一行的重复数据。我不明白为什么它会复制最后一条记录。任何帮助将不胜感激。

$res = DB::table('tickets')
    ->join('gp_groups', 'tickets.id', '=', 'gp_groups.gpid')
    ->where('gp_groups.supervisor_id', 15)
    ->distinct('gp_groups.gpid')
    ->get();

dd($res);

结果

0 => {#1390 ▼
  +"id": 84
  +"gpname": "G2"
  +"detail": "Mahdi"
  +"gender": "Male"
  +"semester": 432
  +"status": "Not assigned"
  +"Assigned": null
  +"user_id": 19
  +"track_id": 4
  +"created_at": null
  +"updated_at": null
  +"gpid": 71
  +"student_id": 13
  +"supervisor_id": 15
}
1 => {#1396 ▼
  +"id": 83
  +"gpname": "hifjksd"
  +"detail": "hfdjkjs"
  +"gender": "Female"
  +"semester": 431
  +"status": "Not assigned"
  +"Assigned": null
  +"user_id": 1
  +"track_id": 2
  +"created_at": null
  +"updated_at": null
  +"gpid": 73
  +"student_id": 13
  +"supervisor_id": 15
}
2 => {#1353 ▼
  +"id": 109
  +"gpname": "4512"
  +"detail": "8956"
  +"gender": "Male"
  +"semester": 431
  +"status": "Not assigned"
  +"Assigned": null
  +"user_id": 1
  +"track_id": 3
  +"created_at": null
  +"updated_at": null
  +"gpid": 83
  +"student_id": 12
  +"supervisor_id": 15
}
3 => {#1331 ▼
  +"id": 110
  +"gpname": "4512"
  +"detail": "8956"
  +"gender": "Male"
  +"semester": 431
  +"status": "Not assigned"
  +"Assigned": null
  +"user_id": 1
  +"track_id": 3
  +"created_at": null
  +"updated_at": null
  +"gpid": 83
  +"student_id": 13
  +"supervisor_id": 15
}]}

    

您可以尝试使用 groupBy 而不是 distinct :

$res = DB::table('tickets')
->join('gp_groups', 'tickets.id', '=', 'gp_groups.gpid')
->where('gp_groups.supervisor_id', 15)
->groupBy('gp_groups.gpid')
->get();

dd($res);