记录一个mysql联合查询加分组的报错:
In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'tsbio.sl.id'; this is incompatible with sql_mode=only_full_group_by
我也是第一次遇到这个问题,sql明明是很普通的联合查询 left join on 最后加了一个分组 group by 却报这样的错误,网上查了一下是sql_mode的问题
解决方案:
select version(), @@sql_mode;
查询出来后会看到 版本对应的sql_mode的配置:
此时sql_mode里面是有ONLY_FULL_GROUP_BY
执行下面的set修改:
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
这样前面的ONLY_FULL_GROUP_BY 就修改没了
再次执行查询就可以查询数据了