这是我的桌子

 patient_id  |  vaccine_id
     7              2
     7              3

我希望它在我的html上像这样显示
患者编号:7,疫苗编号:2,3
我的控制器上有这个问题
return App\Notification::join('patients', 'patients.PatientID', '=', 'notifications.patient_id')
                        ->join('parent_accounts', 'parent_accounts.ParentID', '=', 'patients.parent_id')
                        ->join('vaccines', 'vaccines.VaccineID', '=', 'notifications.vaccine_id')
                        ->select('parent_accounts.parent_phonenumber','patients.*','vaccines.vaccine_name')
                        ->where('due_date', $request->due_date)->get();

但它在展示
patient id: 7, vaccine id: 2 , patient id: 7, vaccine id: 3

我试过使用groupby('patient_id');
但它是这样显示的patient id: 7, vaccine id: 2
它不显示其他疫苗id

最佳答案

必须将group_concat(vaccine_id)groupby('patient_id')一起使用,才能获得所需的格式,如:

->selectRaw('GROUP_CONCAT(vaccine_id)')

关于php - laravel/php-按ID分组,但仍获取每一行数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42361191/

10-11 05:49