是否可以在另一个中包含一个 select?

Is it possible to include one select in another?

我有 2 个 selects 映射器方法:

我想将这些语句包含到select下面的三种方法中。

是否可以将一个 select 包含在另一个中?如果是,那么如何?

<mapper>
...
    <select id="selectOne" resultMap="mytype">
        SELECT
            *
        FROM
            mytype
    </select>

    <select id="selectTwo" resultMap="mytype">
        SELECT
            *
        FROM
            mytype
    </select>

    <select id="selectThree" resultMap="mytype">
        <include refid="selectOne" />
        UNION
        <include refid="selectTwo" />
    </select>
...
</mapper>

不,你不能用 <select> 标签来做,但如果你打算有一个可重用的代码,你可以使用 <sql> 标签。

<sql id="selectOne">
    SELECT * FROM mytype
</sql>

详情请参考document