شرح sql بالعربي - الربط الداخلي والخارجي 2 شرح sql بالعربي - الربط الداخلي والخارجي 2 - اقرا معي وتعلم على الانترنت

شرح sql بالعربي - الربط الداخلي والخارجي 2

شرح sql  بالعربي - الربط الداخلي والخارجي
اخذنا سابقاً الربط البسيط يمكنك قراءته من الرابط التالي كما يمكنك قراءة بقية الدروس من الروابط التالية ايضاً


اليوم ناخذ الربط بالتساوي :

يُعرّف الربط بالتساوي على انه الربط البسيط بين سجلات جدول اول وسجلات جدول ثاني اعتماداً على مساواة بين قيمتي حقل سجل من الجدول الاول وقيمة حقل في سجل من الجدول الثاني .
وتكتب صيغته كالتالي :
Select Table1.Column1, Table1.Column2, Table2.Column3
From Table1, Table2 where Table1.Column1 = Table2.Column2;

لاحظ اننا استخدمنا علامة التساوي من الجدول الاول Table1.Column1 والحقل الثاني من الجدول الثاني Table1.Column2 مما يعني ان عملية الربط لا تستخدم بالضرورة نفس الحقول التي يجب ان يعيدها الاستعلام .
كما يمكن الحصول على نفس النتيجة بإستخدام الصيغة التالية
Select Table1.Column1, Table1.Column2, Table2.Column3
From Table1
Join Table2
ON Table1.Column1 = Table2.Column2;

مثال :

لنفرض انه لدينا الجدول Names الذي يحتوي على اسماء جميع الاشخاص المقيمين في قرية مع ارقامهم التأمينية INumber والجدول Addresses الذي يحتوي على عناوين المنازل في تلك القرية مع الرقم التأميني للمقيم في المنزل واردنا كتابة الاستعلام الذي يعيد قائمة بأسماء الأشخاص وعناوينهم، يمكننا استخدام الصيغة:
Select Names.name, Addresses.address from Names, Addresses
Where Names.INumber = Addresses.INumber;

او
Select Names.name, Addresses.address
From Names
Join Addresses
ON Names.INumber = Addresses.INumber;

استخدام الربط بالتساوي مع عدة جداول :

امكانيات الربط بالتساوي لا تتوقف عند حدود الربط بين جدولين فقط بل يمكن استخدامها لعدة جداول ولكي نستخدم الربط بالتساوي لعدة جداول نستخدم الصيغة التالية :
Select Table1.Column1, Table2.Column2, Table3.Column4
From Table1 Join Table2
ON Table1.Column1 = Table2.Column2
Join Table3
ON Table1.Column3 = Table3.Column4;

في الصيغة السابقة يتم الربط بين الجداول اعتماداً على اسماء الحقول المتساوية المحددة بعد الكلمة ON .

مثال:

لنفرض انه لدينا الجدول Customers الذي يحتوي على رمز الزبون customerID اسمة customerName والجدول CreditCards الذي يحتوي على رقم بطاقة الزبون الائتمانية cardNumber وعلى رقمة customerID والجدول Addresses الذي يحتوي على عناوين الزبائن وكان المطلوب اعادة قائمة برقم الزبون واسمة ورقم بطاقتة الائتمانية والبلد الذي يقيم فيه country للحصول على المطلوب نكتب الاستعلام التالي :
Select Customers.customerID, Customers.customerName,
CreditCards.cardNumber, Addresses.country
From Customers
Join CreditCards
ON Customers.customerID = CreditCards.customerID
Join Addresses
ON Customers.customerID = Addresses.customerID;

لاحظ قد لا تعمل الصيغة السابقة على نظام MS Access لذلك يفضل البعض استخدام تقنية الربط المتساوي المتداخل أي استخدام الصيغة التالية :
Select Table1.Column1, Table2.Column2, Table3.Column4
From Table2
Inner Join
(Table3 Inner Join Table1 ON Table3.Column4 = Table1.Column1)
ON Table2.Column2 = Table1.Column1;
هذه الصيغة تشبه تلك التي استخدمناها في الشريحة السابقة لكن MS Access يواجه صعوبة عند ترجمة عمليات الربط بصورة مباشرة  لذلك لجأنا إلى توليد بنى ربط متداخلة مجمعة بأقواس فكما نلاحظ قمنا بربط الجدول Table مع الجدول Table1 بتساوي الحقلين Column4 من الجدول Table3 مع الحقل Column1 من الجدول Table1 ثم تعاملنا مع التعبير كاملا كطرف في عملية الربط مع الجدول Table2 بتساوي الحقل Column2 من الجدول Table2 مع الحقل column1 من الجدول table1 .

مثال:

إذا كان لدينا مخزن ألبسة يعتمد قاعدة بيانات تحتوي ثلاثة جداول: الأول جدول الأقسام Sectors (ولادي- نسائي- سن محير) الذي يحتوي على رمز القسم sectorID واسم القسم sectorName والثاني جدول الفصول Seasons الذي يحتوي رمز الفصول والسنوات (خريف 2004 – شتاء 2003) seasonID وأسمائها seasonInfo والثالث جدول المنتجات Products الذي يحتوي على الارقام التسلسلية للقطع productID ووصفها productDescription واسعارها productPrice ورمز القسم seasonID ورمز القسم sectorID الذي تتبع له .
المطلوب اظهار قائمة بمواصفات القطع واسعارها والاقسام التي تتبع لها والقسم الخاص بها .

الحل :
Select productDescription, productPrice, seasonName, sectorName
From Sectors
Inner Join
(Seasons Inner Join Products ON Seasons.seasonID = Products.seasonID)
ON Sectors.sectorID = Products.sectorID;

قد لا تعمل الصيغة السابقة مع MS Access لذلك يفضل استخدام تقنية الربط المتساوي المتداخل .


اكتفي بهذا القدر ونلتقي في التدوينة القادمة والتي تحمل العنوان الربط باللامساواه ...

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

.