مثال الصياغة
SELECT order_items.id, orders.order_date, order_items.price
FROM order_items
LEFT OUTER JOIN orders
ON order_items.order_id = orders.id;
تدمج عمليات الربط (Joins) الصفوف من جدولين أو أكثر بناءً على عمود مشترك مرتبط بينهما.
تمثيل بصري لعمليات الربط
SELECT * FROM `A` INNER JOIN `B`
┌────────┐
│ A ┌───┼────┐
│ │ ∩ │ │
└────┼───┘ B │
└────────┘
| نوع الربط | البيانات المضمنة | الوصف |
|---|---|---|
INNER JOIN |
∩ |
يُرجع السجلات ذات القيم المتطابقة في كلا الجدولين |
LEFT OUTER JOIN |
A + ∩ |
يُرجع جميع السجلات من الجدول A، والسجلات المطابقة من الجدول B |
RIGHT OUTER JOIN |
∩ + B |
يُرجع جميع السجلات من الجدول B، والسجلات المطابقة من الجدول A |
FULL OUTER JOIN |
A + ∩ + B |
يُرجع جميع السجلات عند وجود تطابق في الجدول الأيمن أو الأيسر |
أشكال الربط وعوامل التصفية
الربط الأيسر مع استبعاد التقاطع (Left Join Excluding Intersection)
SELECT * FROM A
LEFT JOIN B ON A.key = B.key
WHERE B.key IS NULL;
الربط الأيمن مع استبعاد التقاطع (Right Join Excluding Intersection)
SELECT * FROM A
RIGHT JOIN B ON A.key = B.key
WHERE A.key IS NULL;
الربط الخارجي الكامل مع استبعاد التقاطع (Full Outer Join Excluding Intersection)
SELECT * FROM A
FULL OUTER JOIN B ON A.key = B.key
WHERE A.key IS NULL OR B.key IS NULL;