执行DELETE FROM BriefingUnfollow WHERE briefinguser = Jim AND unfollowed = Tom AND EXISTS SELECT 1 FROM BriefingUnfollow WHERE briefinguser = Jim AND unfollowed = Tom后mysql提示错误为ERROR 1093 HY000 You cant
这个错误是因为MySQL不允许在FROM子句中更新或删除目标表。在这种情况下,DELETE语句的子查询和主查询都引用了相同的目标表BriefingUnfollow,因此MySQL无法确定应该首先执行哪个操作。
要解决这个问题,可以将子查询中的目标表BriefingUnfollow替换为一个临时表或使用JOIN语句来连接两个表。例如,可以使用以下语句来达到同样的效果:
DELETE bu1 FROM BriefingUnfollow bu1
JOIN BriefingUnfollow bu2 ON bu1.briefinguser = bu2.briefinguser AND bu1.unfollowed = bu2.unfollowed
WHERE bu1.briefinguser = 'Jim' AND bu1.unfollowed = 'Tom'
原文地址: https://www.cveoy.top/t/topic/bC9U 著作权归作者所有。请勿转载和采集!