sql中 < include refid=“findPage_paperMarker_where”/> 的位置,若放置再t_paper_marker_res tpmr后面则,该查询条件不起作用。
<select id="findPage" resultMap="BaseResultMap" useCache="false">
SELECT * FROM
(
SELECT
<include refid="Union_Column_List"/>
FROM t_paper_resource pr
LEFT JOIN (SELECT tpmr.res_id, tpmr.type_id FROM t_paper_marker_res tpmr ) mr ON mr.res_id=pr.id
LEFT JOIN (SELECT paper_id, model_id, res_id FROM t_subject_paper ) sp ON sp.paper_id=pr.id
LEFT JOIN (SELECT id, fraction FROM t_subject_resource ) sr ON sr.id=sp.res_id
LEFT JOIN t_user u ON u.id=pr.create_user_id
<include refid="findPage_paperMarker_where"/>
GROUP BY pr.id
ORDER BY pr.create_time DESC
) r
<include refid="findPage_where"/>
ORDER BY r.create_time DESC
<include refid="limit"/>
</select>
<sql id="findPage_paperMarker_where">
<where>
<if test="markerIdsArr != null">
AND mr.type_id in
<foreach item="item" index="index" collection="markerIdsArr" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
</sql>