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/
  • 相关阅读:
    待你长发及腰
    《线段树》讲稿
    Codeforces #Round 376 F 题解
    包裹快递 题解
    Codeforces #Round 376 部分题解
    圆圈舞蹈 题解
    奶牛晒衣服 题解
    BZOJ 1034 题解
    BZOJ 1045 题解
    BZOJ 1054 题解
  • 原文地址:https://www.cnblogs.com/july7/p/15090502.html
Copyright © 2011-2022 走看看