概要:このチュートリアルでは、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_itemsproductsテーブルはproduct_id列です。,

次のステートメントは、LEFT JOIN句を使用して、productsおよびorder_itemsテーブルからデータをクエリします。

結果セットからはっきりとわかるように、NULLorder_id列には、対応する製品がまだ顧客に販売されていないことを示し

結果セットを制限するには、WHERE句を使用できます。, 次のクエリは、販売注文に表示されない製品を返します。

いつものように、SQL ServerはWHERELEFT 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 = 100ON句:

クエリはすべての製品を返しましたが、idが100の注文のみに関連する製品情報があります。,

INNER JOIN句の場合、ON句の条件は、WHERE句に配置されている場合、機能的に同等です。

このチュートリアルでは、SQL ServerLEFT JOIN句を使用して、複数の関連テーブルからデータを取得する方法を学習しました。