عمليات الربط في SQL Server: أنواعها مع أمثلة
⚡ ملخص ذكي
تقوم عمليات الربط في SQL Server بدمج الصفوف من جدولين أو أكثر بناءً على عمود ذي صلة، باستخدام عمليات الربط الداخلية والخارجية اليسرى واليمنى والخارجية الكاملة للتحكم في الصفوف المتطابقة وغير المتطابقة التي تظهر في النتيجة.

ما هي عمليات الربط (Joins) في SQL Server؟
يمكن استرجاع البيانات من أكثر من جدول واحد باستخدام عبارة JOIN في ملقم SQLتجمع عملية الربط (JOIN) صفوفًا من جدولين أو أكثر بناءً على عمود مرتبط بينهما، وغالبًا ما يكون ذلك المفتاح الأساسي مطابق لـ المفتاح الخارجيتوجد أربعة أنواع رئيسية من عمليات الربط (JOIN) في SQL Server:
- الربط الداخلي / الربط البسيط
- الربط الخارجي الأيسر / الربط الأيسر
- وصلة خارجية يمنى / وصلة يمنى
- كامل في الخارج الانضمام
يلخص الجدول أدناه عدد الصفوف التي يُرجعها كل نوع من أنواع JOIN:
| نوع الانضمام | صفوف العودة |
| INNER JOIN | الصفوف التي تتطابق فيها شروط الربط في كلا الجدولين فقط. |
| ترك صلة خارجية | جميع الصفوف من الجدول الأيسر، بالإضافة إلى صفوف الجدول الأيمن المطابقة (قيم فارغة حيث لا يوجد تطابق). |
| حق الانضمام الخارجي | جميع الصفوف من الجدول الأيمن، بالإضافة إلى صفوف الجدول الأيسر المطابقة (قيم فارغة حيث لا يوجد تطابق). |
| كامل في الخارج الانضمام | جميع الصفوف من كلا الجدولين، مع قيم فارغة (NULL) حيثما لم يتم استيفاء الشرط. |
تستخدم الأمثلة أدناه اثنين الجداوليتم ربط جدولي الطلاب والرسوم الدراسية بناءً على عمود القبول المشترك. يشرح كل قسم نوع واحد من أنواع الربط (JOIN) مع صيغته، واستعلام مُطبق، والنتيجة.
INNER JOIN
هذا النوع من ملقم SQL تُعيد دالة JOIN صفوفًا من جميع الجداول التي يكون فيها شرط الربط صحيحًا. وتأخذ الصيغة التالية:
SELECT columns FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
سنستخدم الجدولين التاليين لتوضيح ذلك. يسرد جدول الطلاب أدناه كل طالب ورقم قبوله:
يوضح الجدول أدناه الرسوم التي دفعها كل رقم دخول:
يوضح الأمر التالي عملية الربط الداخلي (INNER JOIN) في SQL Server مع مثال توضيحي:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students INNER JOIN Fee ON Students.admission = Fee.admission
يُظهر الأمر النتيجة التالية، والتي تعرض فقط أرقام القبول الموجودة في كلا الجدولين:
يمكننا تحديد الطلاب الذين سددوا رسومهم. استخدمنا العمود الذي يحتوي على القيم المشتركة في كلا الجدولين، وهو عمود القبول.
ترك صلة خارجية
يُعيد هذا النوع من الربط جميع الصفوف من الجدول الأيسر بالإضافة إلى السجلات الموجودة في الجدول الأيمن والتي تحتوي على قيم متطابقة. على سبيل المثال:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students LEFT OUTER JOIN Fee ON Students.admission = Fee.admission
يُعيد الكود النتيجة التالية، احتفظping كل طالب حتى عندما لا تتطابق سجلات الرسوم:
يتم استبدال السجلات التي لا تحتوي على قيم متطابقة بالقيم الخالية في الأعمدة المعنية.
حق الانضمام الخارجي
يقوم هذا النوع من الربط بإرجاع كافة الصفوف من الجدول الأيمن وفقط تلك التي تحتوي على قيم متطابقة في الجدول الأيسر. على سبيل المثال:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students RIGHT OUTER JOIN Fee ON Students.admission = Fee.admission
تُرجع عبارة OUTER JOINS في SQL Server النتيجة التالية:
سبب الإخراج أعلاه هو أن جميع الصفوف في جدول الرسوم متوفرة في جدول الطلاب عند مطابقتها في عمود القبول.
كامل في الخارج الانضمام
يُعيد هذا النوع من الربط جميع الصفوف من كلا الجدولين، مع قيم فارغة (NULL) حيثما لا يكون شرط الربط صحيحًا. على سبيل المثال:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students FULL OUTER JOIN Fee ON Students.admission = Fee.admission
يُعيد الكود النتيجة التالية لاستعلامات الربط الخارجي الكامل في SQL، بدمج كل صف من كلا الجدولين:






