JOIN
का उपयोग करें DELETE
में बयान।
DELETE p, pa
FROM pets p
JOIN pets_activities pa ON pa.id = p.pet_id
WHERE p.order > :order
AND p.pet_id = :pet_id
वैकल्पिक रूप से आप उपयोग कर सकते हैं...
DELETE pa
FROM pets_activities pa
JOIN pets p ON pa.id = p.pet_id
WHERE p.order > :order
AND p.pet_id = :pet_id
...केवल pets_activities
. से हटाने के लिए
देखें यह ।
एकल तालिका हटाने के लिए, फिर भी संदर्भात्मक अखंडता के साथ, EXISTS
के साथ करने के अन्य तरीके हैं , NOT EXISTS
, IN
, NOT IN
और आदि। लेकिन ऊपर वाला जहां आप निर्दिष्ट करते हैं कि FROM
से पहले एक उपनाम के साथ किन तालिकाओं को हटाना है क्लॉज आपको कुछ बहुत ही तंग स्थानों से अधिक आसानी से निकाल सकता है। मैं एक EXISTS
. तक पहुंचने की प्रवृति रखता हूं 99% मामलों में और फिर 1% है जहां यह MySQL सिंटैक्स दिन लेता है।