【发布时间】:2017-08-24 09:20:32
【问题描述】:
我正在使用 laravel 和 mysql..
我有这样的查询..
$mix = Ergebnisse::where(function($q) use($result) {
foreach ($result as $item) {
$q->orWhere(function($q) use($item) {
$q->where('temperatur', $item->temperatur)
->where('zeit', $item->zeit);
});
}
})->groupBy('katogorie_id')->get();
在我的本地主机上它工作正常,因为我在那里使用 mysql。 但我使用 Postgresql 将项目部署在 Heroku 上。
我遇到了一个错误..
SQLSTATE[42803]: Grouping error: 7 ERROR: column "ergebnisse.id" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: select * from "ergebnisse" where (("temperatur" = $1 and "ze...
^ (SQL: select * from "ergebnisse" where (("temperatur" = 85 and "zeit" = 35) or ("temperatur" = 85 and "zeit" = 30)) group by "katogorie_id")
经过进一步搜索,我知道 GroupBy 与 postgre 不兼容。还有其他方法吗?谢谢
【问题讨论】:
-
GroupBy is not compatible with postgre有趣为什么?因为纯 SQLGROUP BY与 postgresql 很好地兼容。 -
正如@Lukasz Kaminski 评论的那样,它实际上与Mysql 有点不同..
-
你想为一组
katogorie_id获取哪一行? (MySQL 的回答:err,你没有指定,所以我只是把随机的东西放在那里——PostgreSQL 的回答:你没有指定,所以这是一个错误。正确你的错误,我们可以再谈谈)。 -
我不想要重复的 katogories,所以 yim 只将 katogorie:id 放在 groupby 中。现在我将我的表的 id 与 katogorie id 像这样.. ->GroupB('id', 'katogorie')..但它显示了多个 katogories
标签: php mysql postgresql laravel eloquent