【问题标题】:How to use where with groupBy eloquent on Laravel 5.8如何在 Laravel 5.8 上与 groupBy eloquent 一起使用 where
【发布时间】:2019-06-08 19:42:24
【问题描述】:

我正在开发一个 laravel 项目,我正在尝试在我的查询中使用 wheregroupBy。以下是drug_transactions 表的示例。

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

我想获取 patient_id = 1 的 screen_id。然后我使用雄辩如下。

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

非常感谢您对此提供任何建议或指导,谢谢。

【问题讨论】:

标签: laravel


【解决方案1】:

您只能选择在 groupBy 中使用的字段

DrugTransaction::select('screen_id')
    ->where('patient_id',1)
    ->groupBy('screen_id')
    ->get();

【讨论】:

  • 亲爱的 Hung Nguyen,非常感谢。
猜你喜欢
  • 1970-01-01
  • 2014-09-13
  • 1970-01-01
  • 1970-01-01
  • 2020-01-31
  • 1970-01-01
  • 2019-04-17
  • 1970-01-01
  • 2016-01-27
相关资源
最近更新 更多