mysql — laravel / group по id, но по-прежнему получают все строки данных

это мой стол

 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
он не отображает другой идентификатор вакцины

1

Решение

Вы должны использовать group_concat(vaccine_id) с groupby('patient_id') чтобы получить желаемый формат, как:

->selectRaw('GROUP_CONCAT(vaccine_id)')
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector