هل يمكنني حذف الصفوف من جدولين في بيان واحد SQL واحد؟

StackOverflow https://stackoverflow.com/questions/3497468

سؤال

لدي جدولين واحد يسمى "المراجعة" والآخر "review_description"

إذا قمت بانضمام للحصول على جميع البيانات من كليهما:

SELECT *
FROM reviews 
INNER JOIN reviews_description
ON reviews.reviews_id=reviews_description.reviews_id
WHERE reviews.customers_id = 54183

بناءً على ذلك ، أود حذف الصفوف في كلا الجدولين الذين يتطابقون مع هذه المعايير في طلقة واحدة ، أي نصائح؟

هل كانت مفيدة؟

المحلول

نعم، يدعم MySQL عمليات الحذف من أكثر من جدول في بيان واحد:

بالنسبة لأول بناء جملة متعددة الطاولة ، يتم حذف فقط الصفوف المطابقة من الجداول المدرجة قبل الشرط من البند. بالنسبة للجملة الثانية متعددة الطاولة ، يتم حذف فقط مطابقة الصفوف من الجداول المدرجة في البند من (قبل الفقرة باستخدام). التأثير هو أنه يمكنك حذف الصفوف من العديد من الجداول في نفس الوقت والحصول على جداول إضافية تستخدم فقط للبحث ...

أول مثال على بناء الجملة متعدد الطاولة:

DELETE reviews, reviews_description 
  FROM reviews r
  JOIN reviews_description rd
 WHERE reviews.reviews_id = reviews_description.reviews_id
   AND reviews.customers_id = 54183

نصائح أخرى

إلا إذا كان لديك on cascade delete أو أ delete trigger الإعداد تحتاج إلى استخدام عباراتين

هل سيقوم Cascade بحذف المساعدة؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top