我试图做一个查询这样的:MySQL的DELETE FROM与子查询的条件
DELETE FROM term_hierarchy AS th
WHERE th.parent = 1015 AND th.tid IN (
SELECT DISTINCT(th1.tid)
FROM term_hierarchy AS th1
INNER JOIN term_hierarchy AS th2 ON (th1.tid = th2.tid AND th2.parent != 1015)
WHERE th1.parent = 1015
);
正如你可能会说,我想删除父关系1015是否相同TID有其他家长。但是,我得到一个语法错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS th
WHERE th.parent = 1015 AND th.tid IN (
SELECT DISTINCT(th1.tid)
FROM ter' at line 1
我已经检查的文件,并通过自身运行子查询,而这一切似乎退房。任何人都可以弄清楚这里有什么问题吗?
更新:如下面的回答,MySQL不允许将您要删除的表用于条件的子查询中。
**注意**:好的答案在底部http://stackoverflow.com/a/4471359/956397只需在DELETE t FROM table t之后添加表别名...' – PiTheNumber 2014-07-24 10:06:32