JOIN

创建于 2024-12-02 / 34
字体: [默认] [大] [更大]

❮ SQL 关键字参考


INNER JOIN

INNER JOIN 命令返回两个表中具有匹配值的行。

以下 SQL 选择所有带有客户信息的订单:

实例

SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON 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) 中的所有记录,即使右侧没有匹配项 表(订单)。


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) 中的所有记录,即使左侧没有匹配项 表(订单)。


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 关键字返回左表(客户)中的所有行,以及右表中的所有行 表(订单)。 如果"客户"中有行与"订单"不匹配,或者"订单"中有行与"客户"不匹配,这些行也会被列出。


❮ SQL 关键字参考


0 人点赞过