首页 > 其他分享 >Mybatis - 通过中间表查询表A和表B

Mybatis - 通过中间表查询表A和表B

时间:2023-10-03 21:56:31浏览次数:40  
标签:和表 查询 中间 Mybatis where id select

中间表

中间表存储了表 A 的 id 和表 B 的 id,除此之外还存储了自身需要的字段,如创建时间、id。

xml

很简单,通过多个子查询获取数据就可以了,将中间表的字段传递给子查询的 column,子查询获取这个参数进行 where 条件查询。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.bleuon.mapper.CollectFlowchartMapper">

    <resultMap id="mapOfFindAll" type="com.bleuon.entity.dto.CollectFlowchart">
        <id column="id" property="id"/>
        <association property="flowchart" javaType="com.bleuon.entity.dto.CollectFlowchart$Flowchart"
                     select="findFlowchartById" column="flowchart_id"/>
        <association property="user" javaType="com.bleuon.entity.dto.CollectFlowchart$User" select="findUserById"
                     column="belong_uid"/>
    </resultMap>
    <select id="findAll" resultMap="mapOfFindAll" resultType="com.bleuon.entity.dto.CollectFlowchart">
        select *
        from co_collect_flowchart
        where collect_uid = #{uid};
    </select>

    <select id="findFlowchartById" resultType="com.bleuon.entity.dto.CollectFlowchart$Flowchart">
        select *
        from t_flowcharts
        where id = #{id}
    </select>

    <select id="findUserById" resultType="com.bleuon.entity.dto.CollectFlowchart$User">
        select id, avatar, username
        from t_users
        where id = #{id};
    </select>

</mapper>

标签:和表,查询,中间,Mybatis,where,id,select
From: https://www.cnblogs.com/Himmelbleu/p/17741708.html

相关文章

  • 常用的SQL语句小结(二)---普通查询,注释,聚合,分组,复杂查询
    1.普通查询(1)查询所有列SELECT* FROMProduct;(2)查询部分列(跟(1)对比,相当于可以自己确定顺序)SELECTproduct_id,product_name,product_type,sale_price,purchase_price,regist_date FROMProduct;(3)查询时设置别名,英文和中文的区别英文案例:SELECTproduct_idASid,prod......
  • springboot整合elasticsearch中的分词查询配置
    前言:elasticsearch最好还是在linux中进行集群部署,这样更符合企业需求和规范,笔者只在windows的单节点9200端口上部署,仅用于测试和学习。 什么是分词查询: 指的是将输入的文本或查询语句切分成一个个独立的词语或词项,以便更好地处理和分析,然后进行查询,比如你在百度上搜索”成都......
  • Mybatis查询报错 foreach 子查询 (invalid comparison)
    Mybatis查询报错invalidcomparison:java.lang.Stringand[Ljava.lang.String;原因去掉黄色部分<iftest="null!=businessTypeand''!=businessType">  andt.businessTypein     <foreachcollection="businessType"......
  • MyBatis 注解写 SQL 判断空字符串 或 判断为空
    XXXXMapper接口:这里判断数据不能为空@Select("<script>" +"select*fromgs_store" +"<where>" +" <iftest='storeTel!=null'>" +" andstore_tel=#{storeTel}" +" <......
  • mybatis出现错误 java lang NumberFormatException:For input string:A1
    使用mybatis,当使用map传参并且在iftest判断时使用map中所传的参数时,可能会产生如题的报错,具体报错信息见下图:分析这个错误,自己调试也找过度娘,“坚信”自己代码并没问题,但是问题始终无法解决。最后在一个帖子看到说iftest判断时,传入的参数跟匹配的值类型必须一致,于是调整了自己代......
  • SqlServer数据库分页查询问题排查
    使用docker安装下载镜像dockersearchmssql-serverdockerpulldatagrip/mssql-server-linux创建容器dockerrun-d--namesqlserver-p1433:1433-e'ACCEPT_EULA=Y'-e'SA_PASSWORD=szz123456'datagrip/mssql-server-linuxACCEPT_EULA需要设置为Y以接受SQL......
  • 关于在springboot中开发mybatis来实现前后端分离
    一、分层架构Controller:负责处理用户的请求和响应get请求与post请求的区别:get请求需要的在http协议上输入参数,而post请求不需要在http协议上输入参数,要在请求体中寻找参数。 在一次请求与响应过程中,首先浏览器发起一次请求到服务器,服务器中会有一个前端控制器处理请求,处理......
  • 用sql语句查询出表结构,在结果就能看到数据库所有表的结构,这个时候只要全选,然后右击出
    SELECT表名=CaseWhenA.colorder=1ThenD.nameElse''End,表说明=CaseWhenA.colorder=1Thenisnull(F.value,'')Else''End,字段序号=A.colorder,字段名=A.name,字段说明=isnull(G.[value],......
  • 满查询
    开启慢查询setglobalslow_query_log=1;setlong_query_time=0;这里开启慢查询,并将时间设置为0秒结果示例Time这是查询发生的时间,格式为ISO8601。在这个例子中,查询发生在2023年10月2日,4:58:36.987985。User@Host这是执行查询的用户和主机。在这个例子中,用户是root,......