الكلمة المفتاحية LEFT JOIN في SQL
كلمة LEFT JOIN تُستخدم لإرجاع جميع السجلات من الجدول الأيسر (table1)، والسجلات المطابقة من الجدول الأيمن (table2). إذا لم يوجد تطابق، تُرجع النتيجة NULL من جانب الجدول الأيمن. تعتبر LEFT JOIN مفيدة جدًا عند تحليل البيانات التي قد تكون ناقصة في الجدول الثاني.
بناء الجملة (Syntax)
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
ملاحظة: في بعض قواعد البيانات يُطلق على LEFT JOIN اسم LEFT OUTER JOIN.
مثال من قاعدة بيانات Northwind
جزء من جدول العملاء (Customers):
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
جزء من جدول الطلبات (Orders):
| OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
|---|---|---|---|---|
| 10308 | 2 | 7 | 1996-09-18 | 3 |
| 10309 | 37 | 3 | 1996-09-19 | 1 |
| 10310 | 77 | 8 | 1996-09-20 | 2 |
مثال استعلام LEFT JOIN
الاستعلام التالي سيُرجع جميع العملاء، وأي طلبات مرتبطة بهم إن وجدت:
SELECT Customers.CustomerName, Orders.OrderID FROM Customers LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID ORDER BY Customers.CustomerName;
لاحظ أن العملاء الذين لم يقدموا أي طلب سيظهر لديهم NULL في عمود OrderID.
مقارنة LEFT JOIN مع INNER JOIN
- INNER JOIN يُرجع فقط الصفوف التي تحتوي على تطابق في كلا الجدولين.
- LEFT JOIN يُرجع كل الصفوف من الجدول الأيسر حتى إذا لم يكن هناك تطابق في الجدول الأيمن، ويملأ القيم الغير موجودة بـ NULL.
تمرين
ماذا تفعل الكلمة المفتاحية LEFT JOIN في SQL؟
- ترجع فقط السجلات المطابقة من كلا الجدولين
- ترجع جميع السجلات من الجدول الأيسر والسجلات المطابقة من الجدول الأيمن ✅
- ترجع جميع السجلات من الجدول الأيمن والسجلات المطابقة من الجدول الأيسر
- ترجع جميع السجلات من كلا الجدولين
تعليقات
إرسال تعليق