الربط المتقاطع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.. للتنزيل:
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.