zoukankan      html  css  js  c++  java
  • mybatis 查询一对多子表只能查出一条数据

    mybatis 插叙一对多子表只能查出一条数据

    环境 ssm

    持久层 mybatis 关联查询一对多<collection>

    原因 主表id 和子表id 一样

    处理方式:  select 语句中 AS 给id 起个别名 (例如我起的是tc_id)  再在子表中column指定即可

     注意

    left join 中 on 后面加条件 where 和 and 的区别

     

    1、 on条件是在生成临时表时使用的条件,它不管and中的条件是否为真,都会返回左边表中的记录。

    2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左表的记录)了,条件不为真的就全部过滤掉。

    实际情况是在查询时 逻辑删除加的条件 放到on 后面delete_flag = 0 

    SELECT
    t1.*.....

    FROM  AAAA  AS t1

    LEFT JOIN aaaa AS t2 ON t1.id = t2.template_id AND t2.delete_flag = 0
    LEFT JOIN bbbb AS t3 ON t3.id = t2.check_item_id AND t3.delete_flag = 0
    LEFT JOIN cccc AS t4 ON t4.id = t2.check_method_id AND t4.delete_flag = 0
    LEFT JOIN dddd AS t5 ON t1.type_id = t5.id AND t5.delete_flag = 0

    WHERE
    t1.id = 1
    AND t1.delete_flag = 0

    个人网址 http://threenut.cn/
  • 相关阅读:
    视频像素点级的标注
    unet
    Emmet缩写语法
    Nginx漏洞利用与安全加固
    算法时间复杂度
    动态规划dp
    数据结构Java实现04---树及其相关操作
    关于递归
    Java正则表达式
    Java String相关
  • 原文地址:https://www.cnblogs.com/july7/p/15090502.html
Copyright © 2011-2022 走看看