完整报错
> 1055 - Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ht_engineer_schema.ht_project_organizationuser.projectorganizationid' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
only_full_group_by说明:
使用这个就是使用和oracle一样的group 规则, select的列都要在group中,或者本身是聚合列(SUM,AVG,MAX,MIN) 才行,其实这个配置目前个人感觉和distinct差不多的,所以去掉就好
很多大佬都直接修改数据库配置
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
聚合列的方式
将报错的字段用MAX()函数括起来(注意空格),引用的时候用反引号
括起来。
例如:
view_cs.`MAX(projectorganizationid)`
SELECT
*
FROM
(
SELECT
view_cs.*,
ht_project_organization.organizationtype
FROM
(
SELECT
userid,
MAX(username),
MAX(mobile),
MAX(projectorganizationid)
FROM
ht_project_organizationuser
WHERE
projectid IN ( SELECT id FROM ht_project WHERE ownercode like '%0005075%' AND del_flag = '0' )
AND del_flag = '0'
AND mobile != ''
AND iis_hide!='N'
GROUP BY
userid
) AS view_cs
INNER JOIN ht_project_organization ON view_cs.`MAX(projectorganizationid)` = ht_project_organization.id
) AS view_s
WHERE
organizationtype = '3'