22- كورس شرح قواعد البيانات MYSQL – MySQL LEFT JOIN

شرح مفصل لـ MySQL LEFT JOIN

في عالم قواعد البيانات، تُعتبر عمليات الربط (Joins) أحد الأدوات الأساسية لدمج البيانات من جداول متعددة. يُعتبر MySQL LEFT JOIN واحدًا من الأنواع الشائعة للربط، حيث يُستخدم لاسترجاع جميع السجلات من الجدول الأيسر (الجدول الأول المذكور في الاستعلام) وإضافة السجلات المتطابقة من الجدول الأيمن (الجدول الثاني). إذا لم يكن هناك تطابق، فإن النتائج ستحتوي على NULL في الأعمدة الخاصة بالجدول الأيمن.

كيفية استخدام MySQL LEFT JOIN

الصيغة العامة [شركة برمجة مصرية] لاستخدام LEFT JOIN في MySQL كالتالي:

SELECT columns
FROM table1
LEFT JOIN table2
ON table1.common_column = table2.common_column;

– **SELECT columns**: هنا تحدد الأعمدة التي تريد استرجاعها.
– **FROM table1**: يتم تحديد الجدول الأول الذي سيتم جلب البيانات منه.
– **LEFT JOIN table2**: تحديد الجدول الثاني الذي سيتم ربطه بالجدول الأول.
– **ON table1.common_column = table2.common_column**: شرط الربط بين الجدولين بناءً على عمود مشترك.

أمثلة على MySQL LEFT JOIN

لنستعرض بعض الأمثلة لفهم كيفية عمل LEFT JOIN:

[شركة برمجة مصرية] المثال الأول: الربط بين جدولين

افترض وجود جدولين:

1. **employees (الموظفين)**:
– employee_id
– employee_name
– department_id

2. **departments (الأقسام)**:
– department_id
– department_name

نريد استرجاع جميع الموظفين مع أسماء الأقسام التي يعملون بها. إذا لم يكن للموظف قسم محدد، نريد أن يُظهر NULL في عمود اسم القسم.

SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id;

في هذا المثال، سيتم استرجاع جميع الموظفين، حتى أولئك الذين ليس لديهم قسم مرتبط. في حالة عدم وجود تطابق مع جدول الأقسام، سيظهر NULL في عمود department_name.

المثال الثاني: استخدام LEFT JOIN مع WHERE

يمكنك استخدام LEFT JOIN مع جملة WHERE لتصفية النتائج. دعنا نقول أننا نريد استرجاع جميع الموظفين الذين ليس لديهم قسم مرتبط.

SELECT employees.employee_id, employees.employee_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id
WHERE departments.department_id IS NULL;

هذا الاستعلام سيعيد جميع الموظفين الذين لا توجد لهم سطور مطابقة في جدول الأقسام.

المثال الثالث: الربط بين ثلاثة جداول

يمكن أيضًا استخدام LEFT JOIN للربط بين أكثر من جدولين. لنفترض أن لدينا جدولًا ثالثًا **salaries (الرواتب)** يحتوي على:

– employee_id
– salary

ونريد استرجاع جميع الموظفين مع أسماء أقسامهم ورواتبهم.

SELECT employees.employee_name, departments.department_name, salaries.salary
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id
LEFT JOIN salaries ON employees.employee_id = salaries.employee_id;

في هذا المثال، سيقوم الاستعلام بإرجاع جميع الموظفين مع أسماء الأقسام وأي رواتب متوفرة. إذا لم يكن للموظف قسم أو راتب، سيظهر NULL في الأعمدة المعنية.

الخلاصة

MySQL LEFT JOIN أداة قوية تمكنك من استرجاع البيانات من جداول متعددة مع الحفاظ على جميع السجلات من الجدول الأيسر. يمكن أن يكون مفيدًا بشكل خاص عند الحاجة إلى تحليل البيانات غير المكتملة أو عندما تريد رؤية جميع السجلات من جدول معين مع معلومات إضافية من جداول أخرى. باستخدام LEFT JOIN بطرق مبتكرة، يُمكنك الحصول على رؤى أعمق في بياناتك.