English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

استعلامات الجداول المربوطة (Join)

في هذا الدليل، ستتعلم كيفية الاتصال بين جداولين للحصول على بيانات مدمجة.

أساسات الاتصال SQL

حتى الآن، جميع الاستعلامات التي رأيتها مركزة على جدول واحد. ولكن في الحياة الواقعية، غالبًا ما تحتاج إلى استعلامين أو أكثر من عدة جداول وتقديم مجموعة نتائج مدمجة. يُطلق عليها هذا في التكنولوجيا اسم الاتصال، لأنه يتضمن استخدام الحقول المشتركة بين الجداول.外键)联接不同的表以创建数据的新视图。

为了容易理解这一点,让我们来看看下面employeesوdepartments表。在这里,employees表的dept id列是departments表的外键。因此,可以将这两个表连接起来,得到组合的数据。

+--------+--------------+------------+---------+
| emp_id | emp_name     | hire_date  | dept_id |
+--------+--------------+------------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |       4 |
|      2 | Tony Montana | 2002-07-15 |       1 |
|      3 | Sarah Connor | 2005-10-18 |       5 |
|      4 | Rick Deckard | 2007-01-03 |       3 |
|      5 | Martin Blank | 2008-06-24 |    NULL |
+--------+--------------+------------+---------+

+---------+------------------+
| dept_id | dept_name        |
+---------+------------------+
|       1 | Administration   |
|       2 | Customer Service |
|       3 | Finance          |
|       4 | Human Resources  |
|       5 | Sales            |
+---------+------------------+
الجداول: employees
الجداول: departments

ملاحظة:للبدء في ربط الجداول، يجب أن تطابق بيانات الأعمدة المستخدمة للربط، وليس أسماء الأعمدة.

نوع الربط

عند ربط الجداول، يؤثر نوع الربط الذي يتم إنشاؤه في الاستعلام على الصفوف التي تظهر في مجموعة النتائج. يمكنك إنشاء أنواع الربط التالية:

ربط داخلي (Inner join)

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

في الفصل التالي، سنتعلم عنالربط الداخليلمزيد من المعلومات.

الربط الخارجي (Outer join)

الربط الخارجي هو امتداد للربط الداخلي. حتى إذا لم يكن هناك سطر مرتبط في جدول الربط، فإن الربط الخارجي سيعيد هذه السطور. هناك ثلاثة أنواع من الربط الخارجي: الربط الأيسر (left join),الربط الأيمن (right join)والربط الكامل (full join)。

سنوضح هذه المشاريع من الروابط الخارجية في الفصول القادمة.

الربط المتقاطع (Cross join)

الربط المتقاطع هو رابط بدون شرطJOIN. يتم دمج كل سطر من الجدول الأول مع كل سطر من الجدول الثاني. هذا النوع من النتائج يُسمى ناتج ضرب كاردينالي أو تقاطع. على سبيل المثال،employeesوdepartmentsيولد رابط المتقاطع بين الجداول نتائجًا تجمع بين كل مجموعة من الموظفين/القسائم في سطر واحد.

في الفصول القادمة، سنتعلم عنالربط المتقاطعلمزيد من المعلومات.