🔍 فهم LEFT JOIN في SQL: الدليل الشامل للمبتدئين

LEFT JOIN هو أحد أنواع عمليات الدمج (JOIN) في SQL الذي يسمح لك بدمج صفوف من جدولين مع الحفاظ على جميع السجلات من الجدول الأيسر حتى لو لم توجد تطابقات في الجدول الأيمن.


📊 ما هو LEFT JOIN؟

LEFT JOIN يعيد جميع السجلات من الجدول الأيسر (الجدول الأول) والسجلات المطابقة من الجدول الأيمن (الجدول الثاني). إذا لم توجد تطابقات، تكون النتائج من الجدول الأيمن NULL.

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

🎯 متى نستخدم LEFT JOIN؟

نستخدم LEFT JOIN عندما نريد:

  • الحصول على جميع السجلات من الجدول الرئيسي
  • إضافة معلومات إضافية من جدول آخر إذا وجدت
  • عدم فقدان أي سجلات حتى لو لم توجد تطابقات

📝 مثال عملي بسيط

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

  • الموظفين (employees): يحتوي على بيانات الموظفين
  • المشاريع (projects): يحتوي على المشاريع المعينة
SELECT employees.name, projects.project_name
FROM employees
LEFT JOIN projects ON employees.id = projects.employee_id;

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


⚠️ ملاحظات هامة

  1. الجدول الذي يذكر أولاً هو الجدول الأيسر
  2. استخدم ON لتحديد شرط الربط
  3. النتائج غير المطابقة تكون NULL
  4. يمكن استخدام WHERE لتصفية النتائج بعد ال JOIN
SELECT e.name, p.project_name
FROM employees e
LEFT JOIN projects p ON e.id = p.employee_id
WHERE p.project_name IS NULL;

هذا الاستعلام يعيد الموظفين الذين ليس لديهم أي مشاريع.


💡 نصائح عملية

  • استخدم أسماء مختصرة للجداول لتسهيل الكتابة
  • تحقق دائماً من شروط الربط
  • اختبر الاستعلام على بيانات صغيرة أولاً
  • استخدم التعليقات لشرح الاستعلامات المعقدة

🧪 تمرين عملي

جرب هذا المثال بنفسك:

-- إنشاء جداول مثالبة
CREATE TABLE customers (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

CREATE TABLE orders (
    id INT PRIMARY KEY,
    customer_id INT,
    amount DECIMAL(10,2)
);

-- استعلام LEFT JOIN
SELECT c.name, o.amount
FROM customers c
LEFT JOIN orders o ON c.id = o.customer_id;

ماذا سنتعلم في الدرس القادم؟

في الدرس التالي، سنتعلم عن RIGHT JOIN وكيف يختلف عن LEFT JOIN، ومتى نستخدم كل منهما في استعلاماتنا لتحقيق أفضل النتائج في دمج الجداول. 🚀