Как использовать, где с groupBy красноречивым на Laravel 5.8 - PullRequest
0 голосов
/ 08 июня 2019

Я работаю над проектом laravel и пытаюсь использовать where с groupBy в своем запросе. Ниже приведен пример таблицы drug_transactions.

screen_id     patient_id    drug_id
    1             1            1
    1             1            2
    1             1            3
    2             1            1
    3             2            1

Я хотел бы получить screen_id для patient_id = 1. Тогда я использую eloquent, как показано ниже.

    $drugtransactiongroups = DrugTransaction::where('patient_id',1)
                                        ->groupBy('screen_id')
                                        ->get();

Мой результат должен возвращаться screen_id= 1 and 2. Но у меня есть ошибка, как показано ниже.

SQLSTATE [42000]: синтаксическая ошибка или нарушение доступа: 1055 «zigmaclinic.drug_transactions.id» отсутствует в GROUP BY (SQL: выберите * от drug_transactions, где patient_id = 1 группа по screen_id)

Любой совет или руководство по этому вопросу будет принята с благодарностью, спасибо.

1 Ответ

2 голосов
/ 08 июня 2019

Вы можете выбрать только те поля, которые использовались в groupBy

DrugTransaction::select('screen_id')
    ->where('patient_id',1)
    ->groupBy('screen_id')
    ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...