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

Cartesian Product with CROSS JOIN الضرب الديكارتي بـ CROSS JOIN

تعلّم الربط التبادلي CROSS JOIN والربط الذاتي SELF JOIN في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
7 مشاهدة

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

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

بخلاف الربط الداخلي والخارجي اللذين يعتمدان على شرط تطابق المفاتيح، ينتج الربط التبادلي CROSS JOIN ما يُعرف رياضياً باسم الضرب الديكارتي (Cartesian Product)؛ حيث يُقترن كل صف من الجدول الأول بجميع صفوف الجدول الثاني دون أي شرط ON:

  • تضاعف عدد الصفوف: إذا كان الجدول الأول يضم M صفاً والجدول الثاني يضم N صفاً، فإن A CROSS JOIN B يرجع M × N صفاً بالضبط.
  • التصريح المتعمّد الواضح: اكتب دائماً الكلمتين CROSS JOIN صراحةً عندما تقصد توليد الضرب الديكارتي، ليدرك فريق التطوير أن غياب شرط ON مقصود هندسياً.
مخطط الربط التبادلي CROSS JOIN والربط الذاتي SELF JOIN في MySQL 8
SQL
-- Produce the Cartesian product of 4 sizes and 5 colors (20 rows)
SELECT
  s.size_code,
  c.color_name
FROM sizes AS s
CROSS JOIN colors AS c
ORDER BY s.size_code, c.color_name;