انتقل إلى محتوى الدرس

Cleaning Orphaned Rows LEFT JOIN تنظيف السجلات المعزولة بالربط

تعلّم العمليات متعددة الجداول INSERT SELECT و UPDATE JOIN و DELETE JOIN في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
8 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

عبر دمج الحذف المترابط DELETE مع نمط ربط عدم التطابق LEFT JOIN ... WHERE right_table.pk IS NULL، يمكنك تنظيف السجلات اليتيمة المعزولة أو الجلسات المؤقتة المنتهية التي لا تملك سجلاً مقابلاً في الجدول الرئيسي:

  • عزل السجلات غير المرتبطة بدقة: وضع الجدول المراد تنظيفه على اليسار وفحص IS NULL على المفتاح الأساسي للجدول الأيمن يحصر الحذف في الصفوف المعزولة فقط.
  • التحقق المسبق بـ SELECT: نفّذ دائماً نفس جملة FROM ... LEFT JOIN ... WHERE ... IS NULL كاستعلام قراءة SELECT COUNT(*) أولاً للتحقق من عدد الصفوف قبل تحويلها إلى DELETE.
SQL
-- Purge orphaned cart items whose parent shopping cart no longer exists
DELETE ci
FROM cart_items AS ci
LEFT JOIN shopping_carts AS sc
  ON ci.cart_id = sc.cart_id
WHERE sc.cart_id IS NULL;