I'm getting this error when running the code:
Error Code: 1093. You can't specify target table 'details' for update in FROM clause
DELETE FROM details WHERE detail NOT IN
(
SELECT detail
FROM user_details
JOIN data ON user_details.data_iddata = data.iddata
JOIN details ON details.iddetails = data.details_iddetails
)
What am I doing wrong here?
答案 0 :(得分:0)
我没有系统方便,但我认为问题是您可以在子查询中引用与要删除的主要表相同的表。即它不像子查询中的JOIN details ON details.iddetails = data.details_iddetails
,因为它在主选择子句中。
一种解决方法是创建一个临时表,将您感兴趣的记录插入其中,然后从该联接中找到您的集合。
答案 1 :(得分:0)
你正试图从表格中删除>>你正在从中做一个SELECT。
为了使其工作,请从SELECT查询中创建一个列表,并将其结果放在括号中。
如果您不是在外部脚本中执行此操作,则应定义一个视图,以便为您提供所需的SELECT输出。