شرح صفوف ومحتوى الفقرة
يقارن الجدول التالي بين أنماط الاستعلامات المترابطة ومعامل EXISTS والربط في MySQL 8:
| نمط الاستعلام | هل يكرر صفوف الجدول الخارجي؟ | الأمان مع قيم NULL الداخلية | السيناريو الهندسي الأمثل |
|---|---|---|---|
WHERE EXISTS (SELECT 1 ...) | لا يكرر الصفوف أبداً | آمن 100% مع NULL | فحص وجود سجلات فرعية دون الحاجة لعرض أعمدة الجدول الداخلي |
WHERE NOT EXISTS (SELECT 1 ...) | لا يكرر الصفوف أبداً | آمن 100% مع NULL | استخراج السجلات التي لا تملك أي ارتباط في الجدول الفرعي |
WHERE col NOT IN (SELECT ...) | لا يكرر الصفوف | يفشل ويرجع 0 صفوف بوجود NULL | يُتجنب مع الاستعلامات الفرعية التي قد تحتوي على NULL |
INNER JOIN / LEFT JOIN | يكرر الصف بعدد التطابقات الفرعية | آمن في شرط ON | عند الحاجة لعرض أو تجميع أعمدة من كلا الجدولين معاً |
ملخص الدرس: فرّقنا في هذا الدرس بين الاستعلام الفرعي المستقل والمترابط، وقارنّا كل صف بمتوسط فئته، واستخدمنا EXISTS للفحص السريع، ووضحنا سبب تفوق NOT EXISTS على NOT IN بوجود القيم الفارغة.
الخطوة التالية والدرس القادم: في الدرس القادم سندرس «التعبيرات الجدولية الشائعة WITH والاستعلامات العودية في MySQL».
خلاصة المعرفة ومحطة الانتقال
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
توفر الاستعلامات المترابطة ومعاملا EXISTS وNOT EXISTS مقارنات دقيقة داخل المجموعات وفحصاً آمناً للوجود والغياب دون تكرار الصفوف. الخطوة التالية: انتقل إلى درس «التعبيرات الجدولية الشائعة WITH والاستعلامات العودية في MySQL».