"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > Inner Join مقابل Join Outer: ما الفرق ومتى يجب أن أستخدم كل منهما؟

Inner Join مقابل Join Outer: ما الفرق ومتى يجب أن أستخدم كل منهما؟

نشر في 2025-03-23
تصفح:334

INNER JOIN vs. OUTER JOIN: What's the Difference and When Should I Use Each?

اتصال قاعدة البيانات: مقارنة بين الانضمام الداخلي والانضمام الخارجي

في عمليات قاعدة البيانات ، فإن عمليات الاتصال هي مفتاح الجمع بين بيانات الجدول المتعددة. JOIN INNER والانضمام الخارجي هما نوعان اتصال أساسيان. سوف تستكشف هذه المقالة اختلافاتها الرئيسية والتطبيقات العملية.

انضم داخلي: التقاطع

Inner Join حدد تلك الصفوف التي لها قيم مطابقة في عمودين أو أكثر في جداول مختلفة. من الناحية المفاهيمية ، يحصل على تقاطع مجموعتين ، يمثلها الأجزاء المتداخلة من مخطط Venn. يتم تضمين الصفوف الموجودة في كلا الجدولين فقط في الإخراج.

على عكس Join Inner ، يحتوي Join Outer على جميع الصفوف في الجدول المحدد ، بغض النظر عما إذا كان لديهم مباريات في الجداول الأخرى. تنشئ هذه العملية بشكل فعال اتحاد ، يمثلها منطقة مجتمعة من مخطط فين.

نوع الانضمام الخارجي

ينقسم الانضمام الخارجي إلى ثلاثة أنواع:

    اليسار الخارجي:
  • يحصل على جميع صفوف الجدول الأيسر وأي صفوف مطابقة في الجدول الأيمن. سوف تحتوي الصفوف في الجدول الأيمن التي لا تحتوي على تطابقات في الجدول الأيسر إلى قيم خالية.
  • اليمين الخارجي:
  • مشابه للانضمام الخارجي الأيسر ، ولكن يحصل على جميع صفوف الجدول الأيمن والصفوف المطابقة في الجدول الأيسر.
  • الانضمام الخارجي الكامل:
  • الجمع بين جميع صفوف الجدولين وملء المباريات المفقودة مع القيم الفارغة.
مثال عملي

فكر في الجدول التالي الذي يحتوي على العميل وبيانات الطلب الخاصة بهم:

عميل (معرف ، اسم)

الطلبات (معرف ، customer_id ، المنتج)


Inner Join:

يختار * من العميل INNER JOND ORDERS على customer.id = orders.customer_id ؛
SELECT *
FROM customer
INNER JOIN orders ON customer.id = orders.customer_id;

تركت خارجيًا:

يختار * من العميل أوامر الانضمام الخارجي اليسار على customer.id = orders.customer_id ؛
SELECT *
FROM customer
LEFT OUTER JOIN orders ON customer.id = orders.customer_id;

Join Outer Join:

يختار * من العميل أوامر الانضمام الخارجية اليمنى على customer.id = orders.customer_id ؛
SELECT *
FROM customer
RIGHT OUTER JOIN orders ON customer.id = orders.customer_id;

انضم خارجي كامل:

يختار * من العميل أوامر الانضمام الخارجي الكامل على customer.id = orders.customer_id ؛
SELECT *
FROM customer
FULL OUTER JOIN orders ON customer.id = orders.customer_id;
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3