SQL JOIN Keyword
صلة داخلية
يقوم INNER JOIN
الأمر بإرجاع الصفوف التي لها قيم متطابقة في كلا الجدولين.
يحدد SQL التالي جميع الطلبات التي تحتوي على معلومات العميل:
مثال
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN
Customers ON Orders.CustomerID = Customers.CustomerID;
ملاحظة: تحدد الكلمة الأساسية INNER JOIN جميع الصفوف من كلا الجدولين طالما أن هناك تطابقًا بين الأعمدة. إذا كانت هناك سجلات في جدول "الطلبات" لا تحتوي على مطابقات في "العملاء" ، فلن يتم عرض هذه الطلبات!
تحدد جملة SQL التالية جميع الطلبات التي تحتوي على معلومات العميل والشاحن:
مثال
SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM
((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);
الانضمام إلى اليسار
يقوم LEFT JOIN
الأمر بإرجاع جميع الصفوف من الجدول الأيسر والصفوف المتطابقة من الجدول الأيمن. تكون النتيجة فارغة من الجهة اليمنى ، إذا لم يكن هناك تطابق.
سيحدد SQL التالي جميع العملاء وأي طلبات قد تكون لديهم:
مثال
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
ملاحظة: تقوم LEFT JOIN
الكلمة الأساسية بإرجاع كافة السجلات من الجدول الأيسر (العملاء) ، حتى إذا لم تكن هناك مطابقات في الجدول الأيمن (الطلبات).
الحق في الانضمام
يقوم RIGHT JOIN
الأمر بإرجاع جميع الصفوف من الجدول الأيمن والسجلات المتطابقة من الجدول الأيسر. تكون النتيجة NULL من الجانب الأيسر ، عندما لا يكون هناك تطابق.
سيعيد SQL التالي جميع الموظفين وأي طلبات قد يكونوا قد قدموها:
مثال
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;
ملاحظة: تقوم RIGHT JOIN
الكلمة الأساسية بإرجاع كافة السجلات من الجدول الأيمن (الموظفون) ، حتى إذا لم تكن هناك مطابقات في الجدول الأيسر (الطلبات).
الانضمام الخارجي الكامل
يقوم FULL OUTER JOIN
الأمر بإرجاع جميع الصفوف عند وجود تطابق في الجدول الأيسر أو الجدول الأيمن.
تحدد عبارة SQL التالية جميع العملاء وجميع الطلبات:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
ملاحظة: تقوم FULL OUTER JOIN
الكلمة الأساسية بإرجاع جميع الصفوف من الجدول الأيسر (العملاء) ، وجميع الصفوف من الجدول الأيمن (الطلبات). إذا كانت هناك صفوف في "العملاء" لا تحتوي على مطابقات في "الطلبات" ، أو إذا كانت هناك صفوف في "الطلبات" لا تحتوي على مطابقات في "العملاء" ، فسيتم إدراج هذه الصفوف أيضًا.