报错信息如下:

这是因为在SQL查询中,nursing_level 表和 nursing_plan表都包含status列,而在WHERE子句中使用status时没有指定它属于哪张表,导致数据库无法确定应该使用哪个表的status列。

解决方案:
要解决这个问题,需要在 WHERE 子句中明确指定 status 列所属的表名或别名。以下是具体的解决步骤:

  1. 修改 SQL 查询
    在 WHERE 子句中,为 status 列添加表名前缀,明确指定它属于哪张表。例如:

如果 status 列属于 nursing_level 表:WHERE l.status = #{status}

如果 status 列属于 nursing_plan 表:WHERE p.status = #{status}

  1. 更新 MyBatis Mapper 文件
    在你的 NursingLevelMapper.xml 文件中,找到 selectNursingLevelList 的 SQL 查询,修改 WHERE 子句中的 status 列,明确指定它属于哪张表。

以下是修改后的代码:

总结
问题根源:SQL 查询中的 status 列在 WHERE 子句中是模糊的,因为多张表都包含 status 列。

解决方案:在 WHERE 子句中为 status 列添加表名前缀,明确指定它属于哪张表。

注意事项:

确保修改后的 SQL 查询语法正确