SQL RIGHT JOIN
SQL RIGHT JOIN
RIGHT JOIN 返回右表 (table2) 的所有行,以及左表 (table1) 中匹配的行。
如果左表中没有匹配的行,则左表中各列的结果将为 NULL。
RIGHT JOIN 和 RIGHT OUTER JOIN 关键字是等价的 - OUTER 关键字是可选的。
RIGHT JOIN 语法
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
演示数据库
下面是 Orders 表中的片段:
| OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
|---|---|---|---|---|
| 10308 | 2 | 7 | 1996-09-18 | 3 |
| 10309 | 37 | 3 | 1996-09-19 | 1 |
| 10310 | 77 | 8 | 1996-09-20 | 2 |
以及 Employees 表中的片段:
| EmployeeID | LastName | FirstName | BirthDate | Photo |
|---|---|---|---|---|
| 1 | Davolio | Nancy | 12/8/1968 | EmpID1.pic |
| 2 | Fuller | Andrew | 2/19/1952 | EmpID2.pic |
| 3 | Leverling | Janet | 8/30/1963 | EmpID3.pic |
SQL RIGHT JOIN 示例
以下 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) 中没有匹配项。