关于MySQL中删除满足子查询结果数据的操作


关于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
	)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM