SQL JOIN 关键字
INNER JOIN
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
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
关键字返回左侧表(客户)中的所有记录,即使右侧表(订单)中不存在匹配项。
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
关键字返回右侧表(员工)中的所有记录,即使左侧表(订单)中不存在匹配项。
FULL OUTER 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
关键字会返回左侧表(Customers)中的所有行,以及右侧表(Orders)中的所有行。如果 "Customers" 表中存在与 "Orders" 表中没有匹配的行,或者 "Orders" 表中存在与 "Customers" 表中没有匹配的行,这些行也会被列出。