起因是我设置了一个考核表结构,其中包含指标值,指标当前值,是主副指标等列。
后面我要进行考核的验收的时候,我发现验收要取得的是主当前指标值/主指标值以及副指标当前值/副指标值。如果想要让这两条数据一次都被查到,那么就需要进行自连接查询(查询同一个表两次,但是有些需要的输出内容要在一行数据中)
<?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.mapper.IndiMapper"> <resultMap id="mainIndi" type="com.example.entity.Indi"> <result property="lastMainIndi" column="a.indi_true/a.indi"/> <result property="lastSubIndi" column="b.indi_true/b.indi"/> <result property="name" column="name"/> <result property="time" column="time"/> <result property="id" column="id"/> </resultMap> <select id="selectIndiShow" resultMap="mainIndi"> SELECT a.id,a.name,a.time,a.indi_true/a.indi,b.indi_true/b.indi FROM indiinfor a ,indiinfor b WHERE a.mainOrsub=1 AND b.mainOrsub=0 </select> </mapper>
这里很有趣的一点是,我一开始把column写成a.name,a.time,a.id,居然查不出数据。后来我在navicat上查询发现,查出来的结果有些就是不带表名的
标签:指标值,查询,mainOrsub,mp,id,indi,连接,indiinfor From: https://www.cnblogs.com/kun1790051360/p/17893004.html