美文网首页
MyBatis联表查询时,主查询表的字段怎么统一加别名(通用方案

MyBatis联表查询时,主查询表的字段怎么统一加别名(通用方案

作者: 王月亮17 | 来源:发表于2023-08-27 18:08 被阅读0次

    一般来说,MyBatis生成的xml sql文件中,会有一个Base_Column_List,方便查询时直接引用。如下:

    select
    <include refid="Base_Column_List" />
    from tbl_product
    where id = id
    

    可是有时候需要联表查询,这时候如果依然这样写显然是不行的,两个表很可能有许多相同的字段,这时候就需要给查询的字段加上表名:

    select
    tp.id, tp.name, tp....
    from tbl_product tp 
    left join tbl_mall tm on tp.mall_id = tm.id
    where tp.id = id and tm.color = 'red'
    

    但是每次写一个联表查询SQL都需要这样来一次,维护起来就比较困难了。

    于是有了下面这种写法:
    首先,创建一个Alias_Column_List

    <sql id="Alias_Column_List" >
        ${alias}.id,  ${alias}.name,  ${alias}....
    </sql>
    

    然后在写SQL的时候,如下引用即可:

    select
    <include refid="Alias_Column_List" >
        <property name="alias" value="tp"/>
    </include>
    from tbl_product tp 
    left join tbl_mall tm on tp.mall_id = tm.id
    where tp.id = id and tm.color = 'red'
    

    相关文章

      网友评论

          本文标题:MyBatis联表查询时,主查询表的字段怎么统一加别名(通用方案

          本文链接:https://www.haomeiwen.com/subject/rpuwmdtx.html