sql三表連刪
最近專案中遇到一個三表連刪的問題,在網上找了好多資料,但是大多數都是打醬油的,最終還是自己研究出來了,其實沒什麼難度,大家多想想也可以寫出來,發個帖子記錄下
<!-- 三表連刪 刪除多條-->
<!-- 類別表,使用者表,中間表 -->
<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>
由於暫時還不會調那個程式碼的表格,可能閱讀性不太好,大家湊活著看吧,哈哈哈