اخذنا في الدرس السابق الربط بالتساوي يمكنك
متابعة الدرس من الرابط التالي
كما يمكنك قراءة بقية الدروس من الروابط التالية
:
اليوم بإذن الله نأخذ الربط باللامساواه والربط
الخارجي :
اولاً الربط باللامساواه :
في الربط بالمساواه اعتمدنا على استخدام المساواه
في الشرط Where
ولكن هذا لا يعني اننا لا نستطيع استخدام عمليات المقارنة الاخرى اكبر , اصغر
,وغيرها كما في الصيغة التالية :
Select
Table1.Column1, Table2.Column2
From Table1, Table2
Where Table1.Column1
< Table2.Column2;
مثال:
ليكن لدينا جدول اسمة Stores
خاص بمعمل اقمشة والذي يحتوي على اسماء المخازن storeName
وارقامها storeID , وجدول اخر اسمة Occupation
يحتوي على معلومات المشغولية للمخازن التي تتضمن رقم المخزن stroreID
وكمية البضاعة في المخزن quantity ونوعها Type .
لاعادة قائمة بالمخازن الفارغة غير المشغولة نكتب
الاستعلام التالي :
Select Stores.storeID,
Stores.storeName from Stores, Occupation
Where Stores.storeID
<> Occupation.storeID
ثانياً الربط الخارجي :
لنتمكن من فهم الربط الخارجي علينا ان نعود الى
فكرة الربط بالتساوي حيث استخدمنا الصيغة Inner Join في
هذه الحالة كانت السجلات التي ارجعها الاستعلام هي السجلات التي تحقق شرط الربط
الذي يظهر بعد تعبير ON حيث تم اسقاط السجلات غير المتطابقة من جدول
النتائج ، اما في حالة الربط الخارجي Outer
Join فلا
يتم إسقاط السجلات غير المتطابقة ،
الربط الخارجي له ثلاثة انواع :
Left, Right, Full
Left Join
:
لأخذ جميع
السجلات من الجدول الاول Table1 وفقط السجلات من الجدول الثاني Table2
التي تتطابق فيها قيمة الحقل Column1 من الجدول Table1
مع قيمة الحقل Column2
من الجدول الثاني نكتب الصيغة التالية :
Select * from Table1
LEFT OUTER JOIN Table2
ON Table1.Column1 =
Table2.Column2;
هذا النوع من الربط يرجع لنا
الاتي:
- جميع القيم الخاصة بالحقل التابع للجدول الاول .
- جميع القيم المطابقة لها والخاصة بالحقل التابع للجدول الثاني حيث يتم ادراج القيمة NULL في قيم الحقل التابع للجدول الثاني وذلك في السجلات التي لا تكون فيها قيمة حقل الجدول الاول مطابقة لقيمة حقل الجدول الثاني .
كما يكون عدد السجلات المعادة مطابقاً لعدد السجلات التي يعيدها
الاستعلام عن قيم حقل الجدول الاول .
مثال
Right Join:
لأخذ جميع السجلات من الجدول الثاني Table2
وفقط السجلات من الجدول الاول Table1 التي تتطابق فيها قيمة الحقل Column1
من الجدول Table1
مع قيمة الحقل Column2
من الجدول الثاني نكتب الصيغة التالية :
Select * from Table1
RIGHT OUTER JOIN Table2
ON Table1.Column1 =
Table2.Column2;
نلاحظ انه تم ادراج القيمة NULL لقيم الحقل Column2 في السجلات التي لم تكن فيها قيمة الحقل Column2 مطابقة لقيمة الحقل الاول .
Full Join:
جميع السجلات من الجدول الثاني Table2
وجميع السجلات من الجدول الاول Table1
بحيث تتوضع السجلات التي تتطابق فيها قيمة الحقل Column1
من الجدول Table1
مع قيمة الحقل Column2
من الجدول الثاني Table2
في نفس السجل من جدول القيم المعادة نكتب الصيغة التالية :
Select * from Table1
FULL OUTER JOIN Table2
ON Table1.Column1 =
Table2.Column2;
مثال :
اذن ينتج عن عمليات الربط الخارجي في الحالة العامة، سجلات
تحتوي في حقول
معينة القيمة NULL بسبب
اختلاف عدد السجلات التي نريد ربطها وهذا ما سنوضحة في مثال مناسب لكل نوع من
انواع الربط الخارجي .
استخدام Natural Join :
:
اكتفي بهذا القدر ونلتقي في التدوينة القادمة لا
تنسى الاشتراك في المدونة او الاعجاب بصفحتنا على الفيس بوك ليصلك كل جديد نقوم
بنشرة استودعك الله .
إرسال تعليق
لا تبخل علينا باقتراحك او قم بمشاركة الموضوع ليستفيد الاخرين ايضاً شكرا لزيارتك عزيزي الزائر