Al consultar tablas conjuntas de MyBatis, cómo agregar alias a los campos en la tabla de consulta principal (solución general)

En términos generales, habrá uno en el archivo xml sql generado por MyBatis Base_Column_Listpara referencia directa durante la consulta. como sigue:

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

Pero a veces es necesario consultar tablas conjuntas. En este momento, obviamente no es posible escribir así. Es probable que las dos tablas tengan muchos campos idénticos. En este caso, debe agregar nombres de tablas a los campos consultados:

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'

Pero cada vez que escribe una consulta SQL de tabla conjunta, debe hacerlo una vez y es más difícil de mantener.

Entonces tenemos el siguiente método de escritura:
Primero, crea uno Alias_Column_List:

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

Luego, al escribir SQL, simplemente cite lo siguiente:

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'

Supongo que te gusta

Origin blog.csdn.net/qq_34972627/article/details/132544570
Recomendado
Clasificación