| ||||
| ||||
|
| | رقم المشاركة : 1 (permalink) | |||||||
| استخراج السجلات من جدولين عملية INNER JOIN تقوم بدمج السجلات من جدولين أينما وجدت قيم متطابقة في حقل مشترك. بناء الجملة FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field2 تتكون عملية INNER JOIN من الأجزاء التالية: الجزءالوصف table1, table2 أسماء الجداول التي يتم تجميع السجلات منها.field1, field2أسماء الحقول المتصلة. إذا لم تكن الحقول رقمية، فينبغي أن تكون من نفس نوع البيانات كما ينبغي أن تحتوي على نفس نوع البيانات، ولكن لا ينبغي أن يكون لها نفس الاسم.compoprأي عامل مقارنة علائقي: "=" أو "<" أو ">" أو "<=" أو ">=" أو"<>".تنويهات يمكنك استخدام عملية INNER JOIN في أية جملة FROM. تعتبر هذه الصلة هي أكثر أنواع الصلات شيوعاً. وتقوم الصلات الداخلية بدمج سجلات من جدولين أينما وجدت قيم متطابقة في حقل مشترك بين الجدولين. يمكنك استخدام INNER JOIN مع الجدولين Departments (الإدارات) و Employees (الموظفون) لتحديد كافة الموظفين في كل قسم. وفي المقابل، لتحديد كافة الإدارات (حتى إذا لم تحتوي بعضها على موظفين) أو كافة الموظفين (حتى إذا لم ينتمي بعضهم إلى إدارة)، يمكنك استخدام عملية LEFT JOIN أو RIGHT JOIN لإنشاء صلة خارجية. إذا حاولت ربط حقول تحتوي على بيانات من النوع "مذكرة" أو "كائن OLE"، يحدث خطأ. يمكنك ربط حقلين رقميين يحتويان على أنواع متماثلة. على سبيل المثال، يمكنك ربط الحقلين ترقيم تلقائي و نوع بيانات طويل لأنهما أنواع متماثلة. ومع ذلك، لا يمكنك ربط نوعي الحقلين نوع بيانات مفرد و نوع بيانات مزدوج. يوضح المثال التالي كيفية ربط الجدولين Categories (فئات) و Products (منتجات) في الحقل 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.field1 compopr table2.field1 AND ON table1.field2 compopr table2.field2) OR ON table1.field3 compopr table2.field3)]; يمكن أيضاً تداخل عبارات JOIN باستخدام بناء الجملة التالي: SELECT fields FROM table1 INNER JOIN (table2 INNER JOIN [( ]table3 [INNER JOIN [( ]tablex [INNER JOIN ...)] ON table3.field3 compopr tablex.fieldx)] ON table2.field2 compopr table3.field3) ON table1.field1 compopr table2.field2; يمكن تداخل LEFT JOIN أو RIGHT JOIN داخل INNER JOIN، ولكن لا يمكن تداخل INNER JOIN داخل LEFT JOIN أو RIGHT JOIN. عمليتا LEFT JOIN و RIGHT JOIN تقوم بتجميع سجلات الجدول المصدر عند استخدامهما في أي من جمل FROM. بناء الجملة FROM table1 [ LEFT | RIGHT ] JOIN table2 ON table1.field1 compopr table2.field2 تتكون عمليتا LEFT JOIN و RIGHT JOIN من الأجزاء التالية: الجزءالوصفtable1, table2أسماء الجداول التي يتم تجميع السجلات منها.field1, field2أسماء الحقول المتصلة. ينبغي أن تكون هذه الحقول من نفس نوع البيانات كما ينبغي أن تحتوي على نفس نوع البيانات، ولكن لا ينبغي أن يكون لها نفس الاسم.compoprأي عامل مقارنة علائقي: "=" أو "<" أو ">" أو "<=" أو ">=" أو"<>". تنويهات استخدم عملية LEFT JOIN لإنشاء صلة خارجية يسرى. تتضمن الصلات الخارجية اليسرى كافة السجلات الموجودة في الجدول الأول (الموجود على الجانب الأيسر) من جدولين، حتى في حالة عدم وجود قيم متطابقة للسجلات الموجودة في الجدول الثاني (الموجود على الجانب الأيمن). استخدم عملية RIGHT JOIN لإنشاء صلة خارجية يمنى. تتضمن الصلات الخارجية اليمنى كافة السجلات الموجودة في الجدول الثاني (الموجود على الجانب الأيمن) من جدولين، حتى في حالة عدم وجود قيم متطابقة للسجلات الموجودة في الجدول الأول (الموجود على الجانب الأيسر). على سبيل المثال، يمكنك استخدام LEFT JOIN مع الجدولين Departments "الإدارات" (الموجود على الجانب الأيسر) والجدول Employees "الموظفون" (الموجود على الجانب الأيمن) لتحديد كافة الإدارات، بما في ذلك تلك الإدارات التي لا تحتوي على موظفين. ولتحديد كافة الموظفين، بما في ذلك الموظفين الذين لا ينتمون إلى إحدى الإدارات، يمكنك استخدام RIGHT JOIN. يوضح المثال التالي كيفية ربط الجدولين Categories (فئات) و Products (منتجات) في الحقل CategoryID (معرّف الفئة). يقدم الاستعلام قائمة بكافة الفئات، بما في ذلك تلك التي لا تحتوي على منتجات: SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID; في هذا المثال، يكون CategoryID (معرّف الفئة) هو الحقل المتصل، ولكن لا يتم تضمينه في نتائج الاستعلام لأنه لا يتم تضمينه في عبارة SELECT. لتضمين الحقل المتصل، قم بإدخال اسم الحقل في عبارة SELECT— في هذه الحالة، Categories.CategoryID. ملاحظات لإنشاء استعلام يتضمن السجلات فقط التي يتطابق فيها البيانات الموجودة في الحقول المتصلة، استخدم عملية INNER JOIN.
| |||||||
|
| | رقم المشاركة : 3 (permalink) | |||||||
|
| |||||||
|
![]() |
| أدوات الموضوع | البحث في الموضوع |
| أنماط العرض | تقييم هذا الموضوع |
| |
\\\