أهم أقسام المدونة

الصفحات

الجمعة، 2 سبتمبر 2016

الربط المتقاطع Cross Join


الربط المتقاطعCross Join :

تعرفنا على هذا النوع سابقا، فهو ينتج تلقائيا عند عرض حقلين من جدولين مختلفين بدون ذكر أي طريقة لربطهما معا.. في هذه الحالة، يتم ما يشبه عملية الضرب، بتكوين أزواج تبادلية من الحقلين، بحيث تظهر كل خانة من الجدول الأول مع كل خانة من الجدول الثاني في هذه الأزواج، وبهذا يكون عدد السجلات الناتجة = عدد خانات الحقل الأول ×  عدد خانات الحقل الثاني.. مثال:

SELECT Author, Book

FROM   Authors, Books

عند تنفيذ هذا الاستعلام، سيظهر ناتج شبيه بما يلي (سنفترض أن هناك مؤلفين اثنين فقط على سبيل الاختصار):

 

Book
Author
الطعام لكل فم
توفيق الحكيم
شهرزاد
توفيق الحكيم
مهنتي القتل
توفيق الحكيم
الاحتلال
توفيق الحكيم
الطعام لكل فم
نبيل فاروق
شهرزاد
نبيل فاروق
مهنتي القتل
نبيل فاروق
الاحتلال
نبيل فاروق

 

طبعا هذا ناتج عجيب وليس عمليا هنا، ولكنه قد يبدو عمليا في بعض التطبيقات الرياضية التي تحتاج فيها إلى الحصول على تباديل قيمتين أو أكثر.

وتوجد فقرة خاصة بهذا النوع من الربط، وهي الفقرة CROSS JOIN، ولو كتبت الاستعلام السابق في باني الاستعلام، فسيتم تحويله تلقائيا إلى الصيغة التالية:

SELECT Author, Book

FROM   Authors CROSS JOIN Books

 

ملحوظة:
لإنشاء الجملة السابقة باستخدام باني الاستعلام، حدّد الحقل Book من جدول الكتب، والحقل Author من جدول المؤلفين، ثمّ اضغط بزرّ الفأرة الأيمن على الخط الواصل بينَ الجدولين، ومن القائمة الموضعيّة اضغط الأمر: Delete لحذف الربط بين الجدولين.. هذا سيجعل الربط بينهما تقاطعيا!.. لاحظ أن حذف هذا الخط لا يحذف العلاقة الموجودة بين الجدولين، ولكنه فقط يؤثر على كيفية بناء الاستعلام.. ولإعادة رسم الخط مرة أخرى، اسحب الحقل Authors.ID وأسقطه على الحقل Books.AuthorID.

 

من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.