تعتمد نتيجة CROSS JOIN على وجود صف من كل طرف لتكوين كل زوج. إذا كان أحد الجدولين فارغا، فلا يوجد صف يمكن إقرانه بصفوف الجدول الآخر، ولذلك تكون النتيجة فارغة مهما كان عدد الصفوف في الطرف غير الفارغ. القاعدة العددية هنا مباشرة: حاصل ضرب أي عدد في صفر يساوي صفرا.
قد يتوقع المبتدئ ظهور صفوف الجدول الممتلئ مع قيم NULL للطرف الفارغ، لكن ذلك سلوك يرتبط بحفظ الصفوف في الربط الخارجي. الربط المتقاطع لا يحفظ طرفا مستقلا، بل يولد أزواجا فعلية من الصفوف الموجودة في الجدولين.
مثال
SELECT p.id, a.id
FROM planets AS p
CROSS JOIN astronauts AS a;
إذا احتوى جدول الكواكب على خمسة صفوف ولم يحتو جدول رواد الفضاء على أي صف، فلن يعرض هذا الاستعلام أي زوج. لذلك ينبغي فحص الجداول المرجعية عند اختفاء نتيجة توليد التركيبات بشكل غير متوقع.
باختصار: وجود جدول فارغ يجعل نتيجة CROSS JOIN فارغة، لأنه لا يمكن تكوين زوج دون صف من كل طرف.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.