私はこのようなクエリを実行しようとしています:
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
);
おそらくおわかりのように、同じtidに他の親がある場合は、1015への親関係を削除したいと思います。ただし、構文エラーが発生します。
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は、削除するテーブルを条件のサブクエリで使用することを許可していません。
DELETE t FROM table t ...