概要:このチュートリアルでは、SQL ServerLEFT JOIN
句と、これを使用して複数のテーブルからデータを照会する方法について学
Sql Server LEFT JOIN句の概要
LEFT JOIN
句を使用すると、複数のテーブルからデータをクエリできます。 左のテーブルからすべての行と右のテーブルから一致する行を返します。 右側のテーブルに一致する行が見つからない場合は、NULL
が使用されます。,
次に、LEFT JOIN
句を使用して二つのテーブルT1とT2を結合する方法を示します。
Code language: SQL (Structured Query Language) (sql)
この構文では、T1とT2はそれぞれ左
T1テーブルの各行について、クエリはT2テーブルのすべての行とそれを比較します。 行のペアによって結合述部がTRUE
と評価される場合、これらの行の列値が結合されて新しい行が形成され、結果セットに含まれます。,
左側のテーブル(T1)の行にT2テーブルの一致する行がない場合、クエリは、左側のテーブルの行の列値を、右側のテーブルの各列値に対してNULL
つまり、LEFT JOIN
句は、左のテーブル(T1)のすべての行と、一致する行またはNULL
右のテーブル(T2)の値を返します。
以下は、二つのテーブルT1(1,2,3)とT2(A,B,C)のLEFT JOIN
を示しています。, LEFT JOIN
は、パターンを使用してT1テーブルの行とT2テーブルの行を一致させます。
この図では、T2テーブルの行がT1テーブルの行1と一致するものはありません。したがって、NULLが使用されます。 T1テーブルの行2および3は、それぞれT2テーブルの行AおよびBと一致します。,
SQL Server左結合の例
次を参照してくださいproducts
およびorder_items
テーブル:
各販売注文明細には、プロダクト。 間のリンクorder_items
とproducts
テーブルはproduct_id
列です。,
次のステートメントは、LEFT JOIN
句を使用して、products
およびorder_items
テーブルからデータをクエリします。
結果セットからはっきりとわかるように、NULL
order_id
列には、対応する製品がまだ顧客に販売されていないことを示し
結果セットを制限するには、WHERE
句を使用できます。, 次のクエリは、販売注文に表示されない製品を返します。
いつものように、SQL ServerはWHERE
LEFT JOIN
句の後にLEFT JOIN
句を処理します。,
The following example shows how to join three tables: production.products
, sales.orders
, and sales.order_items
using the LEFT JOIN
clauses:
Here is the output:
SQL Server LEFT JOIN: conditions in ON vs., WHERE句
次のクエリは、注文id100に属する製品を検索します。
条件を移動しましょうorder_id = 100
ON
句:
クエリはすべての製品を返しましたが、idが100の注文のみに関連する製品情報があります。,
INNER JOIN
句の場合、ON
句の条件は、WHERE
句に配置されている場合、機能的に同等です。
このチュートリアルでは、SQL ServerLEFT JOIN
句を使用して、複数の関連テーブルからデータを取得する方法を学習しました。
コメントを残す