Bunun gibi bir sorgu yapmaya çalışıyorum:
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
);
Muhtemelen anlayabileceğiniz gibi, aynı tid'in başka ebeveynleri varsa, 1015 ile ebeveyn ilişkisini silmek istiyorum. Ancak bu bana bir sözdizimi hatası veriyor:
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
Belgeleri kontrol ettim ve alt sorguyu kendim çalıştırdım ve hepsi kontrol edilmiş gibi görünüyor. Burada neyin yanlış olduğunu bilen var mı?
Güncelleme : Aşağıda yanıtlandığı gibi, MySQL, silmekte olduğunuz tablonun koşul için bir alt sorguda kullanılmasına izin vermez.
DELETE t FROM table t ...