簡體   English   中英

選擇 DISTINCT 返回重復數據 Laravel 8

[英]Select DISTINCT returns duplicates data Laravel 8

我正在嘗試為他顯示屬於主管的組。 我使用 join 來獲取基於supervisor_id每個gpid信息,查詢它的好但返回最后一行的重復數據。 我不明白為什么它會復制最后一條記錄。 任何幫助將非常感激。

$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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM