原因:
select 语句中 test.h.id
没有被包含在GROUP BY子句中,并且也不是一个聚合列(如 COUNT()
, SUM()
, AVG()
等)。这违反了 ONLY_FULL_GROUP_BY
的要求。
解决方法: 禁用 ONLY_FULL_GROUP_BY
-- 禁用 ONLY_FULL_GROUP_BY(会话级别,仅影响当前会话,其他会话及新建会话不受影响)
SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
-- 或者禁用(全局级别,需要谨慎使用,影响新建会话,已存在会话不受影响)
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));