- 这个错误in where clause is ambiguous多半是因为多表查询的时候几个表中同时出现了某个相同的列名,而在查询条件WHERE后面又没有指定是那个表,而引起的,又或者是查询结果里面有两个相同的列名,而没有指定是哪个表使用
- 如例子:
<select id="selectUserRoleById" resultMap="userAndRoleMap1"> select r.CREATE_USER, r.STATUS,r.UPDATE_USER, r.VERSION, r.DESCRIPTION, r.NAME,r.ID from t_base_user u INNER JOIN t_base_user_role ur INNER JOIN t_base_role r ON u.ID=ur.USER_ID AND ur.ROLE_ID=r.ID where ID=#{id} </select>
改为:where r.ID=#{id},指定role表的ID。
当进行多表联查时,如果在WHERE子句中未明确指定列的来源表,可能会导致`inwhereclauseisambiguous`错误。例如,给定的SQL查询示例中,由于ID字段在多个表中存在,未指定是哪个表的ID,这将引发歧义。解决方案是在查询条件中明确表名,如`wherer.ID=#{id}

1077

被折叠的 条评论
为什么被折叠?



