關於MySQL中刪除滿足子查詢結果數據的操作
關鍵問題:MySQL不允許在子查詢中使用要刪除的表
錯誤示范:
DELETE
FROM
post_activity_user
WHERE
id IN (
SELECT
a.id
FROM
post_activity_user a
LEFT JOIN post_activity_info b ON a.activity_id = b.id
WHERE
b.enterprise_id = 10000000
AND b.activity_type = 3
)
正確處理:
DELETE
FROM
post_activity_user
WHERE
post_activity_user.id IN (
SELECT
*
FROM
(
SELECT
a.id
FROM
post_activity_user a
LEFT JOIN post_activity_info b ON a.activity_id = b.id
WHERE
b.enterprise_id = 10000000
AND b.activity_type = 3
) ee
)