场景
mysql实现多表查询时,我使用了group by xx.id,前端调用时报Cause: java.sql.SQLSyntaxErrorException: Duplicate column name 'id’错误


错误分析
Mapper.xmk文件中实现多表关联查询,controller层对查询出的数据使用了PageHelper做了分页,如果sql的字段名中有sql关键字,会导致PageHelper插件出现 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Duplicate column name ‘Id’ 这样的错误。


解决方案
在具有关键字性质的字段名前后加入 ``符号即可,例如 a.Id,a.Vin


举例示意:最后的group by使用了id关键字,使用``符号即可

select * 
from A a 
inner join B b  on a.xx = b.xx
inner join C c on c.xx = a.xx
where 
	a.status = '1'
	group by a.`id`
							
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐