Mybatis实现union all 查询合并多个结果集

原创
2016/06/13 18:10
阅读数 5.5W


以下是mybatis mapper对应的sql语句:

<select id="getProductEnableNumberInfos" resultMap="productMap" >
		  SELECT CDSK_ITEM_CODE ProductCode,WMST_SKU_UNIT ProductUnit,WMST_ENABLED_NUMBER ProductNum from (
			  <foreach collection="conditions.list" item="item" index="index" separator="union all">
				SELECT c.CDSK_ITEM_CODE,WMST_SKU_UNIT,SUM(WMST_ENABLED_NUMBER) WMST_ENABLED_NUMBER FROM wm_stock_${conditions.esCorCode} w 
				LEFT JOIN cd_wh_itme_${conditions.esCorCode} c ON w.WMST_SKU_ID=c.CD_ITEM_ID
				WHERE c.CDSK_ITEM_CODE=#{item.ProductCode,jdbcType=VARCHAR}
				AND w.WMST_SKU_UNIT=#{item.ProductUnit,jdbcType=VARCHAR} 
				AND w.WMST_WR_ID=${conditions.wrId} AND w.WMST_CUSTOMER_CODE=#{conditions.customerCode,jdbcType=VARCHAR} 
		      </foreach>
		     ) alias WHERE alias.WMST_ENABLED_NUMBER>0;
	</select>

注意事项:

使用union all 查询时,所有查询语句的返回结果字段名称和个数必须一致。

展开阅读全文
打赏
0
3 收藏
分享
加载中
推荐国内最流行的iBatis、MyBatis代码生成网站: fwjava.com
在线生成,操作极其简单,生成的代码十分规范好用.
现在,大多数知名的互联网公司都在用它.
2016/09/21 11:20
回复
举报
更多评论
打赏
1 评论
3 收藏
0
分享
返回顶部
顶部