Sto provando a fare una query come questa:
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
);
Come probabilmente puoi dire, voglio eliminare la relazione genitore a 1015 se lo stesso tid ha altri genitori. Tuttavia, questo mi produce un errore di sintassi:
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
Ho controllato la documentazione ed eseguito la sottoquery da solo, e sembra che tutto funzioni. Qualcuno riesce a capire cosa c'è che non va qui?
Aggiornamento : come spiegato di seguito, MySQL non consente di utilizzare la tabella che stai eliminando in una sottoquery per la condizione.
DELETE t FROM table t ...