5.5 SQL - FULL JOIN

جملة SQL FULL JOIN

جملة FULL JOIN (أو FULL OUTER JOIN) بتُرجع:

  • جميع السجلات من الجدول الأيسر (left table)
  • وجميع السجلات من الجدول الأيمن (right table)
  • ولو مفيش تطابق، القيمة بتكون NULL

بمعنى آخر:
FULL JOIN = LEFT JOIN + RIGHT JOIN



الصيغة (Syntax):

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;


البيانات المستخدمة:

جدول Customers (الجدول الأيسر):

CustomerIDCustomerNameCountry
1AlfredsGermany
2Ana TrujilloMexico
3AntonioMexico

جدول Orders (الجدول الأيمن):

OrderIDCustomerIDOrderDate
1030822024-01-01
10309372024-01-03
1031032024-01-05


مثال على استخدام FULL JOIN:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;

شرح النتيجة:

  • الطلب 10308 يظهر مع "Ana Trujillo"
  • الطلب 10310 يظهر مع "Antonio"
  • العميل "Alfreds" يظهر مع NULL لأنه مالوش طلبات
  • الطلب 10309 يظهر مع NULL لأن العميل مش موجود


ملاحظات مهمة:

  • FULL JOIN غير مدعومة مباشرة في بعض قواعد البيانات زي MySQL
  • في الحالة دي، ممكن تستخدم UNION بين LEFT JOIN و RIGHT JOIN كبديل
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
UNION
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework