为什么仅在PGSQL中而不是在MYSQL中发生以下错误?

时间:2016-08-08 12:31:22

标签: mysql sql postgresql

  

必须出现在GROUP BY子句中或用于聚合函数

我在两个表之间进行内连接,并在group by中使用基表中的一个外键,并抛出上面的错误。但它在MYSQL中工作正常

1 个答案:

答案 0 :(得分:2)

我相信你在谈论mysql< 5.7这是mysql中的一个非标准功能,他们用mysql 5.7取消了它。

请参阅:https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_only_full_group_by

  

<强> sqlmode_only_full_group_by   拒绝选择列表,HAVING条件或ORDER的查询   BY列表指的是既未在其中命名的非聚合列   GROUP BY子句也不依赖于(唯一确定的)   by)GROUP BY专栏。

     

从MySQL 5.7.5开始,默认的SQL模式包括ONLY_FULL_GROUP_BY。   (在5.7.5之前,MySQL没有检测到功能依赖性和   默认情况下不启用ONLY_FULL_GROUP_BY。有关的描述   5.7.5之前的行为,参见MySQL 5.6参考手册。)