الانضمام الداخلي مقابل الانضمام الخارجي
الضم الداخلي والرابط الخارجي هما طريقتان من أساليب الانضمام إلى SQL المستخدمة في معالجة الاستعلام لقواعد البيانات. ينتمون إلى عائلة بنود الانضمام (اثنان آخران هما Left و Right Joins). ومع ذلك ، هناك ارتباط ذاتي يمكن استخدامه في المواقف المتخصصة. الغرض من الانضمام هو دمج الحقول باستخدام القيم المشتركة للجدولين. تجمع هذه الصلات سجلات من جداول متعددة في قاعدة بيانات. يقوم بإنشاء مجموعات ناتجة ، والتي يمكن حفظها كجدول آخر.
ما هو الانضمام الداخلي؟
عملية الانضمام الأكثر شيوعًا في SQL هي الانضمام الداخلي.يمكن اعتباره النوع الافتراضي للانضمام المستخدم في التطبيقات. تستخدم الوصلة الداخلية دالة الربط للجمع بين جدولين. بافتراض أن الجدولين هما A و B ، فإن مسند الوصلة سيقارن الصفوف A و B لمعرفة جميع الأزواج التي ترضي المسند. يتم دمج قيم العمود لجميع الصفوف المرضية للجداول A و B لإنشاء النتيجة. يمكن النظر إليه على أنه أخذ الصلة المتقاطعة (المنتج الديكارتي) لجميع السجلات أولاً ثم إرجاع السجلات التي تفي بمسند الصلة. ومع ذلك ، في الواقع ، لا يتم حساب المنتج الديكارتي لأنه غير فعال للغاية. يتم استخدام ربط التجزئة أو دمج الفرز بدلاً من ذلك.
ما هو الانضمام الخارجي؟
على عكس الانضمام الداخلي ، تحتفظ الصلة الخارجية بجميع السجلات حتى إذا لم تتمكن من العثور على سجل مطابق. هذا يعني أن الصلة الخارجية تحتاج إلى سجل للعثور على سجل مطابق حتى يظهر في النتيجة. بدلاً من ذلك ، سيعيد جميع السجلات ، لكن السجلات غير المتطابقة ستحتوي على قيم فارغة. تنقسم الصلات الخارجية إلى ثلاث فئات فرعية.تم تركهما صلة خارجية ، صلة خارجية يمنى و صلة خارجية كاملة. يعتمد هذا التمييز على صف الجدول (الجدول الأيسر أو الجدول الأيمن أو كلا الجدولين) الذي يتم الاحتفاظ به عند العثور على سجلات غير متطابقة. الصلات الخارجية اليسرى (المعروفة أيضًا باسم الصلة اليسرى) تحتفظ بكافة سجلات الجدول الأيسر. هذا يعني أنه حتى إذا كان عدد السجلات المطابقة صفرًا ، فسيظل هناك سجلات في جدول النتائج ، ولكن سيكون لها قيم خالية لجميع أعمدة B. بمعنى آخر ، يتم إرجاع جميع القيم من الجدول الأيسر بقيم متطابقة من اليمين الجدول (أو القيم الخالية عند عدم التطابق). إذا تم مطابقة القيم من عدة صفوف من الجدول الأيسر مع صف واحد من الجدول الأيمن ، فسيتم تكرار الصف من الجدول الأيمن كما هو مطلوب. الوصلة الخارجية اليمنى تشبه إلى حد كبير الصلة الخارجية اليسرى ، لكن معالجة الجداول تحظى بالتقدير. هذا يعني أن النتيجة ستحتوي على جميع صفوف الجدول الأيمن مرة واحدة على الأقل مع قيم الجدول الأيسر المتطابقة (والقيم الخالية للقيم اليمنى غير المتطابقة). تعتبر الوصلة الخارجية الكاملة أكثر شمولاً من الوصلات الخارجية اليمنى واليسرى.ينتج عنه الجمع بين تأثير تطبيق كل من الجزء الخارجي الأيسر والأيمن معًا.
ما هو الفرق بين الانضمام الداخلي والخارجي الانضمام؟
لا يحتفظ Inner Join بالصفوف غير المتطابقة في النتيجة ، لكن الصلة الخارجية ستحتفظ بجميع السجلات من جدول واحد على الأقل (اعتمادًا على الصلة الخارجية التي تم استخدامها). لذا ، فإن السلوك المتمثل في عدم وجود معلومات في الصفوف غير المتطابقة في جدول النتائج أمر غير مرغوب فيه ، فأنت بحاجة دائمًا إلى استخدام إحدى الوصلات الخارجية (بدلاً من الوصلة الداخلية). قد لا ينتج عن الصلة الداخلية نتيجة إذا لم يتم العثور على مطابقات. لكن الصلة الخارجية ستنتج دائمًا جدولًا ناتجًا ، حتى مع عدم وجود صفوف متطابقة. ستعيد الصلة الداخلية دائمًا جداول بها قيم (إذا تم إرجاعها). لكن الصلات الخارجية قد ينتج عنها جداول ذات قيم خالية.