अन्य लोगों के लिए जो सबक्वेरी का उपयोग करते समय इस प्रश्न को हटाना चाहते हैं, मैं आपको MySQL को आउटस्मार्ट करने के लिए यह उदाहरण छोड़ता हूं (भले ही कुछ लोगों को लगता है कि यह नहीं किया जा सकता है):
DELETE e.*
FROM tableE e
WHERE id IN (SELECT id
FROM tableE
WHERE arg = 1 AND foo = 'bar');
आपको एक त्रुटि देगा:
ERROR 1093 (HY000): You can't specify target table 'e' for update in FROM clause
हालांकि यह प्रश्न:
DELETE e.*
FROM tableE e
WHERE id IN (SELECT id
FROM (SELECT id
FROM tableE
WHERE arg = 1 AND foo = 'bar') x);
ठीक काम करेगा:
Query OK, 1 row affected (3.91 sec)
अपनी सबक्वेरी को एक अतिरिक्त सबक्वेरी (यहां x नाम दिया गया है) में लपेटें और MySQL खुशी-खुशी वह करेगा जो आप पूछते हैं।