Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'database_name.sh_goods_comment.goods_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
时间: 2023-11-03 14:27:26 浏览: 87
这个错误提示说明在你的 SQL 语句中 SELECT 子句中的第二个列 `sh_goods_comment.goods_id` 没有被包含在 GROUP BY 子句中,而且它不是一个聚合函数的参数,这在 MySQL 5.7 的 `sql_mode` 中是不被允许的。解决这个问题的方法是将 SELECT 子句中的每个列都包含在 GROUP BY 子句中,或者将其定义为聚合函数的参数。
例如,如果你的 SQL 语句类似于以下语句:
```
SELECT user_id, goods_id, COUNT(*) FROM sh_goods_comment GROUP BY user_id;
```
这个语句会报错,因为 `goods_id` 列没有被包含在 GROUP BY 子句中。你需要将语句修改为:
```
SELECT user_id, goods_id, COUNT(*) FROM sh_goods_comment GROUP BY user_id, goods_id;
```
或者将 `goods_id` 列定义为聚合函数的参数,例如:
```
SELECT user_id, MAX(goods_id), COUNT(*) FROM sh_goods_comment GROUP BY user_id;
```
这样就可以避免这个错误了。
相关问题
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'kaixi_homecare.a.id'
这个错误是由于您在使用GROUP BY子句时,SELECT语句中的列不一致导致的。在GROUP BY子句中,您必须指定所有不聚合的列。在这种情况下,您需要将a.id列添加到GROUP BY子句中:
SELECT a.id, other_columns
FROM your_table_name AS a
GROUP BY a.id, other_columns
请注意,other_columns是您查询中的其他列。确保在GROUP BY子句中包含所有这些列,以解决此错误。
1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test1.tb_course.course_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
这个错误是由于 MySQL 的 sql_mode 配置为 only_full_group_by 模式导致的。这个模式要求在 GROUP BY 子句中出现的每个列,在 SELECT 子句中都必须出现且必须进行聚合操作(如 COUNT、SUM、AVG 等),否则就会报错。
解决这个问题可以有以下两种方式:
1. 将 sql_mode 配置修改为非 only_full_group_by 模式,或者将其禁用。
2. 在 SELECT 子句中将需要显示的列进行聚合操作,或者将其移动到 GROUP BY 子句中。
例如,可以将 SQL 语句修改为:
SELECT course_id, course_name, COUNT(*) AS count
FROM tb_course
GROUP BY course_id, course_name;
这样就可以避免这个错误了。
阅读全文