我試圖做一個查詢這樣的: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