English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يستعيد الأمر 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命令从左表返回所有行,并从右表返回匹配的行。如果不匹配,则结果从右侧为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命令从右表返回所有行,并从左表返回匹配的记录。如果没有匹配项,则结果从左侧为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当左表或右表中存在匹配项时,该命令将返回所有行。
以下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، فإن هذه الصفوف سيتم عرضها أيضًا.