English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، ستتعلم كيفية استخدام انضمام اليسار في SQL لاستخراج البيانات من جداولين.
يستعيد جملة LEFT JOIN جميع السجلات من الجدول الأيسر بالإضافة إلى السجلات التي تتوافق مع الشروط الاتصال في الجدول الأيمن.الانضمام الأيسر هونوع من الاتصال الخارجي، لذلك يُطلق عليهleft outer join.أحد أنواع الاتصال الخارجي الأخرى هوالانضمام الأيمنوالانضمام الكامل.
الرسم البياني البياني يوضح كيف يعمل الاتصال الأيسر.
ملاحظة:الانضمام الخارجي هو نوع من الاتصال الذي يحتوي على سجلات في الناتج، حتى لو لم تكن هناك تطابق بين سجلات الجداول اللتين يتم ربطها.
للمعرفة الواضحة لذلك، دعونا نلقي نظرة على ما يلي+---------+------------------+وdepartments表。
| 5 | Martin Blank | 2008-06-24 | NULL | | emp_id | emp_name | hire_date | dept_id | | 5 | Martin Blank | 2008-06-24 | NULL | | 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 | | 5 | Martin Blank | 2008-06-24 | NULL | | | 5 | Sales | +--------+--------------+------------+---------+ | 5 | Sales | | dept_id | dept_name | | 1 | Administration | | 2 | Customer Service | | 3 | Finance | | 4 | Human Resources | | 5 | Sales | | |
employees +---------+------------------+ | employees departments |
الجدول:
الآن، لنفترض أنك تريد استرجاع هوية جميع الموظفين، الاسم وتاريخ التوظيف وإسم قسمهم مهما كان القسم الذي يعملون فيه. للحصول على هذا النوع من مجموعة النتائج، نحتاج إلى تطبيق الاتصال الأيسر.الموظفين(employees) وdepartments(جداول) تربط معًا لاسترجاع هوية الموظفين، الاسم، تاريخ التوظيف وإسم قسمهمdept_idويشمل أيضًا الموظفين الذين لم يتم تخصيصهم لقسم.
SELECT t1.emp_id, t1.emp_name, t1.hire_date, t2.dept_name FROM employees AS t1 LEFT JOIN departments AS t2 ON t1.dept_id = t2.dept_id ORDER BY emp_id;
نصيحة:في الاستعلامات الاتصالية، الجدول الأيسر هو الجدول الذي يظهر أولاً في جملة JOIN، والجدول الأيمن هو الجدول الذي يظهر أخرًا في الجملة.
بعد تنفيذ الأوامر أعلاه، ستحصل على الناتج التالي:
+--------+--------------+------------+-----------------+ | emp_id | emp_name | hire_date | dept_name | +--------+--------------+------------+-----------------+ | 1 | Ethan Hunt | 2001-05-01 | Human Resources | | 2 | Tony Montana | 2002-07-15 | Administration | | 3 | Sarah Connor | 2005-10-18 | Sales | | 4 | Rick Deckard | 2007-01-03 | Finance | | 5 | Martin Blank | 2008-06-24 | NULL | +--------+--------------+------------+-----------------+
كما يمكنكم رؤيته بوضوح، يضم الاتصال الأيسرالموظفينالصفوف في نتائج مجموعة (employees) بغض النظر عنdepartmentsفي الجدولdept_idهل تتناسب الأعمدة.
ملاحظة:إذا كانت هناك سطر في الجانب الأيسر وليس هناك تطابق في الجانب الأيمن، فإن الصفوف المرتبطة ستعتمد القيم NULL من جميع الأعمدة في الجانب الأيمن.