SQL多表查询连接条件导致错误记录

  <select id="selectClueRemarkForDetailByClueId" parameterType="string" resultMap="BaseResultMap">
    select cr.id,cr.note_content,u1.name as create_by,cr.create_time,u2.name as edit_by,cr.edit_time,cr.edit_flag
    from tbl_clue_remark cr
    join tbl_user u1 on cr.create_by=u1.id
    left join tbl_user u2 on cr.edit_by=u2.id
    where cr.clue_id=#{clueId}
  </select>

  数据库的语句是没有问题的,但是连表查询时,条件使用cr.create_by和u1.id 作为两者的连接条件

显而易见的是,这时候的create_by就不能习惯性的使用username了,我们应该相对应的从前端获取的是user.id

这样前端的数据和后台查询对应的数据才能被查询出来

${sessionScope.sessionUser.id}通过前端发送至controller---> 调用service层  -->调用mapper的SQL语句执行数据库的查询操作获取到数据,返回给前端
原文地址:https://www.cnblogs.com/LWF6869/p/13094112.html