最近项目中遇到一个三表连删的问题,在网上找了好多资料,但是大多数都是打酱油的,最终还是自己研究出来了,其实没什么难度,大家多想想也可以写出来,发个帖子记录下
<!-- 三表连删 删除多条-->
<!-- 类别表,用户表,中间表 -->
<delete id="DeleteThreetables" parameterType="java.util.List">
DELETE
ser,res,use1
FROM
PZDF_BMS.BMS_SYS_SERVICEUSERGROUP ser
left join
PZDF_BMS.BMS_SYS_RESERVICEUSERGROUP res
on
ser.GROUPID = res.GROUPID
left join
PZDF_BMS.BMS_SYS_USERINFO use1
on
use1.USERID = res.USERID
WHERE
ser.GROUPID IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
AND ser.PARENTID != 0
</delete>
<!-- 三表连删 删除一条-->
<!-- 类别表,用户表,中间表 -->
<delete id="DeleteThreetablesone" parameterType="int">
DELETE
ser,res,use1
FROM
PZDF_BMS.BMS_SYS_SERVICEUSERGROUP ser
left join
PZDF_BMS.BMS_SYS_RESERVICEUSERGROUP res
on
ser.GROUPID = res.GROUPID
left join
PZDF_BMS.BMS_SYS_USERINFO use1
on
use1.USERID = res.USERID
WHERE
ser.GROUPID=#{groupId}
<!-- ser.AND PARENTID != 0-->
</delete>
由于暂时还不会调那个代码的表格,可能阅读性不太好,大家凑活着看吧,哈哈哈