Estoy tratando de hacer una consulta como esta:
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
);
Como probablemente pueda ver, quiero eliminar la relación principal con 1015 si el mismo tid tiene otros padres. Sin embargo, eso me produce un error de sintaxis:
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
Verifiqué la documentación y ejecuté la subconsulta por sí misma, y todo parece verificar. ¿Alguien puede averiguar qué está mal aquí?
Actualización : como se responde a continuación, MySQL no permite que la tabla de la que está eliminando se use en una subconsulta para la condición.
DELETE t FROM table t ...