मैं इस तरह से एक प्रश्न करने की कोशिश कर रहा हूं:
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 आपको उस तालिका की अनुमति नहीं देता है जिसे आप किसी उपश्रेणी में उपयोग करने के लिए हटा रहे हैं।
DELETE t FROM table t ...