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 (الجدول الأيسر):
| CustomerID | CustomerName | Country |
|---|---|---|
| 1 | Alfreds | Germany |
| 2 | Ana Trujillo | Mexico |
| 3 | Antonio | Mexico |
جدول Orders (الجدول الأيمن):
| OrderID | CustomerID | OrderDate |
|---|---|---|
| 10308 | 2 | 2024-01-01 |
| 10309 | 37 | 2024-01-03 |
| 10310 | 3 | 2024-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;
تعليقات
إرسال تعليق