1055 - Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column nr_devwms_sub_use_itemname which is not functionally dependent on columns in GROUP BY clause; this is in
在SQL中,当使用GROUP BY子句对结果进行分组时,SELECT列表中的每个非聚合列(没有使用聚合函数的列)都必须包含在GROUP BY子句中。否则,将出现类似于"Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column"的错误。
如果你的SQL_MODE设置为only_full_group_by,那么你需要按照上述规则进行修改。有几种解决方法:
-
将非聚合列添加到GROUP BY子句中:根据错误消息,你需要将'nr_dev.wms_sub_use_item.name'列添加到GROUP BY子句中。例如:
SELECT column1, column2, name FROM table GROUP BY column1, column2, name
-
使用聚合函数:如果你不需要以'name'列分组,但又想在SELECT列表中使用它,可以使用聚合函数,如MAX()或MIN()。例如:
SELECT column1, column2, MAX(name) FROM table GROUP BY column1, column2
-
修改SQL_MODE:如果你不想遵循only_full_group_by模式,可以修改SQL_MODE设置。你可以通过以下方法之一修改MySQL的配置文件(如my.cnf或my.ini):
a. 找到[mysqld]部分,并在下面添加以下行: sql_mode = ''
b. 重启MySQL服务以使更改生效。
请注意,修改SQL_MODE可能会影响其他查询的行为,因此请谨慎操作。
原文地址: https://www.cveoy.top/t/topic/i85j 著作权归作者所有。请勿转载和采集!