SQL 速習チュートリアル

SQL RIGHT JOIN

1. SQL RIGHT JOIN の概要

RIGHT JOIN キーワードは、右側のテーブル(table2)の全レコードと、左側のテーブル(table1)のマッチしたレコードを返します。

左側のテーブルにマッチするレコードがない場合、結果セットの左側テーブルのカラムには NULL が入ります。

なお、RIGHT JOINRIGHT OUTER JOIN キーワードは同一であり、OUTER キーワードは省略可能です。

2. RIGHT JOIN の構文

SELECT カラム名
FROM テーブル1
RIGHT JOIN テーブル2
ON テーブル1.カラム名 = テーブル2.カラム名;

       注意: このシンタックスは、関連カラム(Related column)に基づいて2つのテーブルを結合します。マッチングの条件を指定するには ON キーワードを使用します。

3. デモ用データベース

以下は「Orders(注文)」テーブルからの抜粋です:

OrderIDCustomerIDEmployeeIDOrderDateShipperID
10308271996-09-183
103093731996-09-191
103107781996-09-202

次は「Employees(従業員)」テーブルからの抜粋です:

EmployeeIDLastNameFirstNameBirthDatePhoto
1DavolioNancy1968-12-08EmpID1.pic
2FullerAndrew1952-02-19EmpID2.pic
3LeverlingJanet1963-08-30EmpID3.pic

ここで、上記2つのテーブル間の関連カラムは「EmployeeID」カラムであることがわかります。

4. SQL RIGHT JOIN の実装例

以下の SQL は、すべての従業員と、その従業員が担当した可能性のある注文をすべて返します。

4.1 基本的な RIGHT JOIN の例

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;

       注意: RIGHT JOIN キーワードは、左側のテーブル(Orders)にマッチするデータがない場合でも、右側のテーブル(Employees)のすべてのレコードを返します。これにより、注文を一度も担当していない従業員もリストに含まれることになります。