English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

استخدام كلمة المفتاح JOIN SQL و مثال

مراجعة كلمات المفتاحية SQL

INNER JOIN

يستعيد الأمر INNER JOIN سطرين من الجداول التي تحتوي على القيم المتطابقة.

أي مما يلي SQL يختار جميع أوامر تحتوي على معلومات العملاء:

اختيار Orders.OrderID، Customers.CustomerName من Orders
JOIN الداخلية مع Customers على Orders.CustomerID = Customers.CustomerID;

ملاحظة:只要各列之间有匹配项,INNER JOIN关键字就会从两个表中选择所有行。如果“订单(Orders)”表中有与“客户(Customers)”中不匹配的记录,则这些订单将不会显示!

以下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

LEFT JOIN命令从左表返回所有行,并从右表返回匹配的行。如果不匹配,则结果从右侧为NULL。

以下SQL将选择所有客户以及他们可能拥有的任何订单:

 SELECT Customers.CustomerName, Orders.OrderID 
 FROM Customers
 LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
 ORDER BY Customers.CustomerName;

ملاحظة:LEFT JOIN关键字返回左表(客户表 Customers)的所有记录,即使是在右表(订单表 Orders)不匹配。

RIGHT 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关键字返回右表(雇员 Employees)的所有记录,即使在左表(订单 Orders)不匹配。

FULL OUTER JOIN

FULL OUTER JOIN当左表或右表中存在匹配项时,该命令将返回所有行。

以下SQL语句选择所有客户和所有订单:

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

ملاحظة:FULL OUTER JOIN يعود بجميع الصفوف من الجدول الأيسر (عملاء Customers) وكل الصفوف من الجدول الأيمن (طلبات Orders). إذا لم يكن هناك تطابق لبعض الصفوف في جدول Orders في جدول Customers، أو إذا لم يكن هناك تطابق لبعض الصفوف في جدول Orders في جدول Customers، فإن هذه الصفوف سيتم عرضها أيضًا.

مراجعة كلمات المفتاحية SQL