📅  最后修改于: 2023-12-03 14:47:40.855000             🧑  作者: Mango
在 SQL 中,右连接是一个 JOIN 操作,它返回两个表中至少有一个匹配的所有行,以及右表中没有匹配行的 null 值。右连接是左连接的补集。
以下是一个右连接的示例:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
上述语句将返回所有订单及其对应的客户名称,如果订单没有对应的客户,则客户名称将为 null 值。
右连接的语法如下:
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;
假设我们有两张表:Customers 和 Orders。
| CustomerID | CustomerName | ContactName | Country | |------------|--------------|-------------|---------| | 1 | Alfreds | Maria | Germany | | 2 | Ana Trujillo | Ana | Mexico | | 3 | Antonio | Antonio | Mexico |
| OrderID | CustomerID | OrderDate | |---------|------------|-----------| | 1 | 3 | 2020-01-01| | 2 | 1 | 2020-02-01| | 3 | 2 | 2020-03-01|
我们可以使用以下 SQL 语句对这两张表进行右连接:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
它将返回以下结果:
| CustomerName | OrderID | |--------------|---------| | Alfreds | 2 | | Ana Trujillo | 3 | | NULL | | | Antonio | 1 |
这个结果说明了:
右连接操作是非常有用的,尤其在需要查找那些没有匹配项的行时。它也可以与其他操作(如 WHERE 子句和子查询等)一起使用来实现更复杂的查询。