Mysql PGError:ERROR:column";收件箱.id“;必须出现在GROUP BY子句中或在聚合函数中使用

Mysql PGError:ERROR:column";收件箱.id“;必须出现在GROUP BY子句中或在聚合函数中使用,mysql,group-by,Mysql,Group By,我对MySQL数据库有如下查询: SELECT inboxes.* , count(inboxes.conv) AS times , max(created_at) AS created_at FROM `inboxes` WHERE to_user = 2 OR account_id = 2 GROUP BY conv ORDER BY id DESC 此查询适用于我的本地主机,但如果我将其部署到Heroku,则会出现以下错误: PGError: ERROR: colum

我对MySQL数据库有如下查询:

SELECT inboxes.*
   , count(inboxes.conv) AS times
   , max(created_at) AS created_at
FROM `inboxes`
WHERE to_user = 2
   OR account_id = 2
GROUP BY conv
ORDER BY id DESC
此查询适用于我的本地主机,但如果我将其部署到Heroku,则会出现以下错误:

PGError: ERROR:  column "inboxes.id" must appear in the GROUP BY clause or
                 be used in an aggregate function

你应该扔掉
收件箱。*
。列出需要获取的每个参数

所有参数必须分组(
分组依据
),或与分组函数一起使用(
MAX
,等等)


我无法告诉您为什么它在本地主机上工作。

您应该去掉
收件箱。*
。列出需要获取的每个参数

所有参数必须分组(
分组依据
),或与分组函数一起使用(
MAX
,等等)


我无法告诉您为什么它在本地主机上工作。

您需要指定
分组依据中要选择的所有字段,即:

选择inboxes.id,计数(inboxes.conv)作为时间,最大值(创建时间)作为创建时间,其中(to_user=2或account_id=2)按inboxes.id分组,按inboxes.id描述conv订单

您需要指定要选择的
分组依据中的所有字段,即:

选择inboxes.id,计数(inboxes.conv)作为时间,最大值(创建时间)作为创建时间,其中(to_user=2或account_id=2)按inboxes.id分组,按inboxes.id描述conv订单

为避免将来出现此类问题,请在本地安装postgres,并使用生产中使用的相同数据库开发应用程序。

为避免将来出现此类问题,请在本地安装postgres,并使用生产中使用的相同数据库开发应用程序。

感谢各位的回复。但如果我需要处理表中的所有列,该怎么办?还有下一个问题-当我使用
groupbyinboxes.id,conv
时,我得到了一个不同于仅使用
groupbyconv
的输出,谢谢大家的回复。但如果我需要处理表中的所有列,该怎么办?下一个stuf-当我使用
groupbyinboxes.id,conv
时,我得到了一个与仅使用
groupbyconv
不同的输出