LEFT および RIGHT JOIN

完了

LEFT JOIN

LEFT JOIN (LEFT OUTER JOINとも呼ばれます) は、右側の (つまり 2 番めの) テーブルに一致する行があるかどうかに関係なく、クエリ内の左側の (つまり最初の) テーブルのすべての行を保持する SQL 操作の一種です。 一致が見つかると、右側のテーブルの列に対応する値が設定されます。 ただし、一致するものが存在しない場合、結果の右側のテーブルから生成された列には null が含まれます。
この結合は、リレーションシップが不完全であるか存在しないときでも、関連するデータを別のテーブルから追加中に、1 つのテーブルから包括的なリストを作成する必要があるときに便利です。

SELECT customers.customer_name, orders.order_id
FROM sales.customers AS customers
LEFT JOIN sales.orders AS orders ON customers.customer_id = orders.customer_id;

LEFT JOIN を使用する SQL クエリは、sales.orders テーブル内に一致する注文がない顧客を含め、sales.customers テーブルからすべての顧客を取得します。 ON 句は、customer_id フィールドが 2 つのテーブルをリンクすることを指定します。
注文した顧客の場合は、orders テーブルの order_id が表示されます。 ただし、顧客に注文がない場合でも、結果には顧客が含まれ、order_id 列には null 値が表示されます。

RIGHT JOIN

RIGHT JOIN (RIGHT OUTER JOINとも呼ばれます) は、左側の (つまり最初の) テーブルに一致する行があるかどうかに関係なく、右側の (つまり 2 番めの) テーブルのすべての行が結果に含まれるようにする SQL 操作です。
一致するものが見つからない場合、左側のテーブルの列には null 値が表示されます。 この種類の結合は一般に、リレーションシップが存在する場合は左側のテーブルから情報を追加するが、重点は右側のテーブルのデータにおくために使用されます。

SELECT customers.customer_name, orders.order_id
FROM sales.customers AS customers
RIGHT JOIN sales.orders AS orders ON customers.customer_id = orders.customer_id;

このクエリは、sales.orders テーブルからすべての行を取得し、sales.customers テーブルに関連するエントリがない場合でも、すべての順序が結果に含まれるようにします。
ON 句は、customer_id 列を介して 2 つのテーブル間のリレーションシップを指定します。 注文に対応する顧客がある場合、customer_name 列に customer_name が設定され、一致しないレコードの場合は null 値が表示されます。