Mysql PGError:ERROR:column";收件箱.id“;必须出现在GROUP BY子句中或在聚合函数中使用
我对MySQL数据库有如下查询: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
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
不同的输出