我有comments
表。这样的结构
id parent_id user_id comment
-- --------- ------- -------
我要删除相关值不正确的记录。
对于user_id无效值的删除记录,我使用此查询
DELETE FROM `comments` WHERE `user_id` NOT IN (SELECT `id` FROM `users`)
但是当我尝试删除parent_id为无效数据的记录时,我会使用此查询
DELETE FROM `comments` WHERE `parent_id` NOT IN (SELECT `id` FROM `comments`)
我收到此错误
错误代码:1093您不能为更新指定目标表“注释” 在FROM子句
中
答案 0 :(得分:1)
您可以通过级联外键约束来做您想做的事情。
也就是说,您可以使用RenderTransform
完成此操作:
left join
请注意条件DELETE c
FROM comments c LEFT JOIN
comments cp
ON c.parent_id = cp.id
WHERE cp.id IS NULL AND
c.parent_id IS NOT NULL;
。 (几乎)您在该列上所做的任何比较都暗示了这一点,包括c.parent_id IS NOT NULL
。