当前使用版本(必须填写清楚,否则不予处理)
3.1.0
该问题是怎么引起的?(最新版上已修复的会直接close掉)
在自定义SQL里联表查询,且多个表里包含相同字段名,此时用LambdaQueryWrapper针对同名字段生成查询条件。执行会报错:列名有歧义
重现步骤
查询语句: select a.*,b.name from table1 a left join table2 b on a.bid = b.id ${ew.customSqlSegment}
报错信息
column 'creator' in field list is ambiguous
Comment From: miemieYaho
用普通wrapper自己加别名
Comment From: tiswo
用普通wrapper自己加别名
针对这个情况后续是否有优化计划?例如,在自定义sql时候允许设置全局别名?(通过注解传递)
Comment From: miemieYaho
没有
Comment From: thkdog
对于选择queryWrapper还是lambdaWrapper的选择,是需要根据业务来判断的。但是可能一开始没有涉及到关联表字段查询,可以用LambdaWrapper,一旦业务涉及关联表字段查询了,又得切回到QueryWrapper,这里有一定的代价,不知道这块有没有考量?LambdaWrapper是否也能支持字符串形式的Column入参呢?
Comment From: yipanbo
用普通wrapper自己加别名
queryWrapper里面怎么设置表的别名?