شرح صفوف ومحتوى الفقرة
تتطلب تقارير المتاجر الإلكترونية والأنظمة المؤسسية غالباً استخراج بيانات تمتد عبر ثلاثة جداول أو أكثر، لا سيما عند المرور بجدول وسيط لعلاقة متعدد لمتعدد (مثل ربط orders بجدول بنود الطلب order_items ثم جدول المنتجات products). وفي MySQL يتم تسلسل جمل INNER JOIN تباعاً بحيث يرتبط كل جدول جديد بجدول سبق تعريفه:
- التسلسل المنطقي للربط: ابدأ بالجدول الرئيسي في
FROM، ثم اربطه بالجدول الوسيط، ثم اربط الجدول الوسيط بجدول تفاصيل المنتجات. - إعادة الترتيب الذكية بالمحسّن: يحلّل محسّن الاستعلامات في InnoDB أحجام الجداول والفهارس المتاحة ليختار الترتيب الفيزيائي الأسرع للتنفيذ تلقائياً.
SQL
-- Chain 3 tables across a junction table
SELECT
o.order_id,
u.full_name AS customer,
p.product_title,
oi.quantity,
oi.unit_price
FROM orders AS o
INNER JOIN users AS u ON o.user_id = u.user_id
INNER JOIN order_items AS oi ON o.order_id = oi.order_id
INNER JOIN products AS p ON oi.product_id = p.product_id;