تضم سجلات واردة من جدولين عند وجود قيم مطابقة في حقل مشترك.
بناء الجملة
FROM table1 INNER JOIN table2 ON table1.field1compopr table2.field2
تتكون عملية INNER JOIN "الصلة الداخلية" من الأجزاء التالية:
الجزء |
الوصف |
table1 وtable2 |
أسماء الجداول التي يتم ضم السجلات منها. |
field1 وfield2 |
أسماء الحقول المنضمة. إذا لم تكن الحقول رقمية، يجب أن تكون من نفس نوع البيانات وأن تحتوي على نفس نوع البيانات، ولكن يجب ألا يكون لها نفس الاسم. |
compopr |
أي عامل تشغيل مقارنة ارتباطي: "=" أو "<" أو ">" أو "<=" أو ">=" أو"<>". |
ملاحظات
يمكنك استخدام عملية INNER JOIN في أي عبارة FROM. وهذا هو النوع الأكثر شيوعاً من الصلات. تضم الصلات الداخلية من جدولين عند وجود قيم مطابقة في حقل مشترك في الجدولين.
يمكنك استخدام INNER JOIN مع جداول الأقسام والموظفين لتحديد كافة الموظفين في كل قسم. في المقابل، لتحديد جميع الأقسام (حتى إذا لم يتم تعيين أي موظفين لهذه الأقسام) أو جميع الموظفين (حتى إذا لم يتم تعيين بعضهم إلى قسم)، يمكنك استخدام عملية LEFT JOIN "الصلة اليسرى" أو RIGHT JOIN "الصلة اليمنى" لإنشاء صلة خارجية.
إذا حاولت ربط حقول تحتوي على بيانات OLE أو مذكرة أو عنصر، يحدث خطأ.
يمكنك ربط حقلين عددين من أنواع مشابهة. على سبيل المثال، يمكنك ربط حقول ترقيم تلقائي وحقول طويلة لأنها من أنواع مشابهة. ومع ذلك، يتعذر ربط أنواع الحقول "فردي" و"مزدوج".
يوضح المثال التالي كيف يمكنك ربط جداول "الفئات" و"المنتجات" في حقل "CategoryID":
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
في المثال السابق، CategoryID هو حقل الصلة، ولكنه غير مضمن في ناتج الاستعلام نظراً لأنه غير مضمن في جملة SELECT. لتضمين حقل الصلة، يمكنك تضمين اسم الحقل في جملة SELECT — في هذه الحالة، Categories.CategoryID.
يمكنك أيضاً ربط عدة عبارات ON في جملة JOIN باستخدام بناء الجملة التالي:
SELECT fields
FROM table1 INNER JOIN table2 ON table1.field1compoprtable2.field1 AND ON table1.field2compoprtable2.field2) OR ON table1.field3compoprtable2.field3)];يمكنك أيضاً تضمين جُمل JOIN باستخدام بناء الجملة التالي:
SELECT fields
FROM table1 INNER JOIN (table2 INNER JOIN [( ]table3 [INNER JOIN [( ]tablex [INNER JOIN ...)] ON table3.field3compoprtablex.fieldx)] ON table2.field2compoprtable3.field3) ON table1.field1compoprtable2.field2;يمكن إدخال LEFT JOIN أو RIGHT JOIN في INNER JOIN، ولكن لا يمكن إدخال INNER JOIN في LEFT JOIN أو RIGHT JOIN.