首页 > 解决方案 > 选择 DISTINCT 返回重复数据 Laravel 8

问题描述

我正在尝试为他显示属于主管的组。我正在使用连接来获取每个gpid信息库supervisor_id,查询它还可以,但返回最后一行的重复数据。我不知道为什么它会复制最后一条记录。任何帮助将非常感激。

$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
}]}

    

标签: phplaraveleloquentlaravel-8

解决方案


您可以尝试使用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);

推荐阅读