RIGHT JOIN キーワードは、左テーブル(table1)に一致した行を付加した、右テーブル(table2)全行を返します。 一致するものがなければ、結果の左側は NULL になります。
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;
または:
SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;
PS! In some databases RIGHT JOIN is called RIGHT OUTER JOIN.
このチュートリアルでは、よく知られた Northwind サンプルデータベースを使用します。
次は、"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 | Notes |
---|---|---|---|---|---|
1 | Davolio | Nancy | 12/8/1968 | EmpID1.pic | Education includes a BA in psychology..... |
2 | Fuller | Andrew | 2/19/1952 | EmpID2.pic | Andrew received his BTS commercial and.... |
3 | Leverling | Janet | 8/30/1963 | EmpID3.pic | Janet has a BS degree in chemistry.... |
次の SQL 文は、employees 全行と、一致するものがあればその orders を返します:
SELECT Orders.OrderID, Employees.FirstName
FROM Orders
RIGHT JOIN
Employees
ON Orders.EmployeeID=Employees.EmployeeID
ORDER BY
Orders.OrderID;
注: RIGHT JOIN キーワードは、左のテーブル(Orders)に一致するものがない場合でも、 右側のテーブル(Employees)からすべての行を返します。