环境:mysql5.1
linux6
语句:
select a.ID as ID,ifnull(ComplaintsNumbers,'') as ComplaintsNumbers,ifnull(BeenComplaintsNumbers,'') as BeenComplaintsNumbers,ifnull(b.Types,'') as ComplaintsNumbersOperators,ifnull(c.Types,'') as BeenComplaintsNumbersOperators,ifnull(d.Types,'') as ComplaintsNumbersRegion,ifnull(e.Types,'') as BeenComplaintsNumbersRegion,ifnull(ComplaintsContent,'') as ComplaintsContent,ifnull(f.Types,'') as BeenComplaintNumbersNature,ifnull(g.Types,'') as ComplaintHandleStatus,ifnull(ComplaintsTime,'') as ComplaintsTime,ifnull(h.UserName,'') as UserName,ifnull(HandleContent,'') as HandleContent,ifnull(RecvSmsContent,'') as RecvSmsContent,ComplaintHandleStatus as ComplaintHandleStatus from t_complaintsinfos as a left join t_types as b on a.ComplaintsNumbersOperators= b.ID left join t_types as c on a.BeenComplaintsNumbersOperators= c.ID left join t_types as d on a.ComplaintsNumbersRegion= d.ID left join t_types as e on a.BeenComplaintsNumbersRegion= e.ID left join t_types as f on a.BeenComplaintNumbersNature= f.ID left join (select ComplaintsID,ifnull(GROUP_CONCAT(distinct Types),'') as Types from t_complaintshandle as a left join t_types as b on a.HandleStatus=b.ID group by ComplaintsID) as g on a.ID= g.ComplaintsID left join t_userinfos as h on a.UserID= h.ID where a.ID =16错误:
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause语句稍微有点长 大部分都是因为控制ifnull的语句 级联了一张表的好多字段。
现在只有在Tomcat下的项目报这个错误,在其他的包括navicat或者直接在linux下的mysql操作都没有问题,为什么只在项目里报错呢?如果哪位大神能帮着优化下语句也很OK。分实在不多,就那么回事吧

解决方案 »

  1.   

    group by ComplaintsID) as g on a.ID= g.ComplaintsID left join t_userinfos as h on a.UserID= h.ID where a.ID =16你的GROUP BY 之后怎么又出现了 left join ,  where  之类的东西? 语法不支持这类用法。
      

  2.   


    是这样的  group by complaintsID) as g  是等于一个表  而且这个是在mysql命令里执行通过的