首页 > 其他分享 >连表查询解决字段冲突

连表查询解决字段冲突

时间:2023-12-14 14:22:40浏览次数:29  
标签:name age id 连表 stu 冲突 查询 my class

连表查询解决字段冲突

字段冲突在 id , age

class 表 (加表名在前面,让sql查询通过 )

 <sql id="Base_Column_List">
      id,class_name,age
  </sql>

  <!-- 改为-->

<sql id="join_Base_Column_List">
        my_class.id,
        my_class.class_name,
        my_class.age
</sql>

stu表 ( 加别名)

  <sql id="Base_Column_List">
    <[email protected]>
    id, stu_name, class_id, age, address, province, `value`
  </sql>
  <!-- 改为-->

  <sql id="bb">
      `stu`.id       as stu_stu_id,
      `stu`.stu_name as stu_stu_name,
      `stu`.class_id as stu_class_id,
      `stu`.age      as stu_age
  </sql>

    <!--结果对象映射 加前缀  columnPrefix="stu_"-->
  <resultMap extends="BaseResultMap" id="MyClassResultMap" type="com.example.demomybatisplus.module.MyClass">
    <collection columnPrefix="stu_" ofType="com.example.demomybatisplus.module.Stu" property="stus" resultMap="com.example.demomybatisplus.mapper.StuMapper.BaseResultMap">
    </collection>
  </resultMap>

StuMapper.xml

<?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.example.demomybatisplus.mapper.StuMapper">
  <resultMap id="BaseResultMap" type="com.example.demomybatisplus.module.Stu">
    <[email protected]>
    <!--@Table yogurt.stu-->
    <id column="id" jdbcType="VARCHAR" property="stuId" />
    <result column="stu_name" jdbcType="VARCHAR" property="stuName" />
    <result column="class_id" jdbcType="VARCHAR" property="classId" />
    <result column="age" jdbcType="VARCHAR" property="age" />
  </resultMap>


  <sql id="Base_Column_List">
    <[email protected]>
    id, stu_name, class_id, age, address, province, `value`
  </sql>
  <!---->

  <sql id="bb">
      `stu`.id  as stu_stu_id,
      `stu`.stu_name as stu_stu_name,
      `stu`.class_id as stu_class_id,
      `stu`.age      as stu_age
  </sql>

    
</mapper>

MyClassMapper.xml

<?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.example.demomybatisplus.mapper.MyClassMapper">


  <resultMap id="BaseResultMap" type="com.example.demomybatisplus.module.MyClass">
      <[email protected]>
      <!--@Table yogurt.my_class-->
    <id column="id" property="classId" />
    <result column="class_name" property="className" />
    <result column="age" property="age" />
  </resultMap>





  <sql id="Base_Column_List">
      id,class_name,age
  </sql>



    <sql id="join_Base_Column_List">
        my_class.id,
        my_class.class_name,
        my_class.age
    </sql>

    <!--结果对象映射 加前缀  columnPrefix="stu_"-->
    <resultMap extends="BaseResultMap" id="MyClassResultMap" type="com.example.demomybatisplus.module.MyClass">
    <collection columnPrefix="stu_" ofType="com.example.demomybatisplus.module.Stu" property="stus" resultMap="com.example.demomybatisplus.mapper.StuMapper.BaseResultMap">
    </collection>
  </resultMap>

  <!--<select id="findByAll" resultMap="findAll">-->

  <!--  select-->
  <!--  <include refid="Base_Column_List" /> ,-->
  <!--  <include refid="com.example.demomybatisplus.mapper.StuMapper.bb" />-->
  <!--  from my_class  left join stu  on stu.class_id = my_class.class_id-->


  <select id="findById" resultMap="MyClassResultMap">
      select
      <include refid="join_Base_Column_List" /> ,
      <include refid="com.example.demomybatisplus.mapper.StuMapper.bb" />
      from my_class  left join stu  on stu.class_id = my_class.id
  </select>


</mapper>

标签:name,age,id,连表,stu,冲突,查询,my,class
From: https://www.cnblogs.com/firsthelloworld/p/17901077.html

相关文章

  • 查询表结构 类型
    selectCOLUMN_NAME,COLUMN_TYPEfrominformation_schema.columnswheretable_name='t_advice_core'orderby`ORDINAL_POSITION`SHOWVARIABLESLIKE'character_set%'mysql的varchar字段最大长度真的是65535吗?在mysql建表sql里,我们经常会有定义字符串类型的需求......
  • nginx配置多个站点共用80端口,不算端口冲突吗?
    在使用Nginx配置多个站点时,可以将它们共享一个端口(例如80端口)。这是因为Nginx使用虚拟主机(VirtualHost)的概念,通过对访问请求进行区分,将请求发送到不同的站点。Nginx的配置文件中,可以通过server块来定义不同的虚拟主机。每个server块中可以指定不同的域名或IP地址,并设置对应的站点......
  • [INFLUXDB] 查询数据时,INFLUXDB报“InfluxDBException: user is locked”
    1问题描述通过QueryAPI查询INFLUXDB数据库数据时,查询失败,日志中报INFLUXDB数据库错误:...org.influxdb.InfluxDBException:userislocked atorg.influxdb.InfluxDBException.buildExceptionFromErrorMessage(InfluxDBException.java:161)~[influxdb-java-2.22.jar!/:?]......
  • 冲突管理
    2. 现代企业如何看待冲突发言人  00:11好,各位朋友大家好,我是王希音。感谢大家来到职场精英进化论。今天我给大家带来的主题是冲突管理的主题分享。发言人  00:23人和人之间我们可能感受不一样,我们站在的立场和位置不一样。所以当我们有关系的时刻,总会在跟这个关系当中,跟......
  • FQS:一种神奇的数仓查询优化技术
    本文分享自华为云社区《根据执行计划优化SQL【绽放吧!GaussDB(DWS)云原生数仓】》,作者:西岭雪山。引言如果您刚接触DWS那一定会好奇想要知道"REMOTE_FQS_QUERY"到底代表什么意思?我们看官网的描述是代表这执行计划已经CN直接将原语句下发到DN,各DN单独执行,并将执行结果在CN上进行汇......
  • NineData慢查询分析功能:为DBA提供全面的数据库性能解决方案
    对于一个DBA来说,从公司数据库系统的稳定程度可以看出他的能力几何,一个优秀的DBA不仅要保证数据库的稳定运行,还需要有能力有效处理数据库的各种突发性能问题,而最常见的性能问题,就是慢查询。我们公司规模比较大,大大小小的项目加起来超过100个数据库实例,而保证这些数据库的稳......
  • 汽车管理在线查询工具,定位车辆,轻松追踪!
     随着金融科技的不断发展,越来越多的在线查询工具被应用到汽车管理领域。一款名为汽车管理在线查询工具,定位车辆,轻松追踪的工具就是其中之一。此工具通过API接口代码实现了车牌号查车辆信息、车辆故障码、VIN查询汽车品牌以及二手车估值等功能,为用户提供了准确、便捷、高效的汽车......
  • springboot+vue小白升级之路03-实现增删改查、分页查询、模糊查询功能
    我们接着上一课的内容继续springboot后端pom.xml<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>......
  • MySQL 执行一条查询语句的内部执行过程?
    客户端先通过连接器连接到MySQL服务器。连接器权限验证通过之后,先查询是否有查询缓存,如果有缓存(之前执行过此语句)则直接返回缓存数据,如果没有缓存则进入分析器。分析器会对查询语句进行语法分析和词法分析,判断SQL语法是否正确,如果查询语法错误会直接返回给客户端错误信息,如果语......
  • 查询工具方法的使用
    1.通过LambdaQueryWrapper对象构建表示数据库查询--eq方法设置查询条件eq方法:通过“实体::方法”引用表的字段,后面放--userId 和 followUserId 是变量,它们的值将用于构建查询的条件。publicResultisFollow(LongfollowUserId){//获取当前登录的userId......