概要:このチュートリアルでは、MySQLLEFT JOIN句と、それを複数のテーブルからデータを照会するために適用する
MySQL LEFT JOINの概要
LEFT JOINを使用すると、複数のテーブルからデータをクエリすることができます。 INNER JOIN句と同様に、LEFT JOINは、SELECT文のオプション句であり、FROM句の直後に表示されます。,
二つのテーブルを結合するとしますt1とt2。
次のステートメントは、LEFT JOIN句を使用して二つのテーブルを結合する方法を示しています。
Code language: SQL (Structured Query Language) (sql)
LEFT JOIN句を使用すると、左のテーブルと右のテーブルの概念が導入されます。
上記の構文では、t1左のテーブルであり、t2右のテーブルです。,
LEFT JOIN句は、左のテーブルから始まるデータを選択します(t1)。 左のテーブル(t1)の各行と、右のテーブル(t2)の各行をjoin_conditionに基づいて一致します。
両方のテーブルの行が結合条件をTRUEに評価させる場合、LEFT JOIN両方のテーブルの行の列を新しい行に結合し、結果の行にこの新しい行,
左側のテーブル(t1)の行が右側のテーブル(t2)の行と一致しない場合、LEFT JOINは両方のテーブルの行の列を新しい行に ただし、右のテーブルの行のすべての列に対してNULLを使用します。つまり、LEFT JOINは、左のテーブルの行に右のテーブルの一致する行があるかどうかに関係なく、左のテーブルのすべての行を返します。, 一致するものがない場合、右側のテーブルの行の列にはNULLが含まれます。
次のベン図は、LEFT JOIN句がどのように機能するかを視覚化するのに役立ちます。
mysql left join examples
LEFT JOIN句を使用する例をいくつか見てみましょう。,
1)MySQL LEFT JOIN句を使用して二つのテーブルを結合する
サンプルデータベースの次の表を参照してくださいcustomersおよびorders。
各顧客はゼロ以上の注文を持つことができますが、各注文は一つの顧客に属している必要があります。,
このクエリは、LEFT JOIN句を使用して、すべての顧客とその注文を検索します。
Code language: SQL (Structured Query Language) (sql)
または、テーブルエイリアスを使用して入力を保存できます。
Code language: SQL (Structured Query Language) (sql)
この例では、
- customersは左のテーブルで、- ordersは右のテーブルです。
- LEFT JOIN句は、注文のない顧客を含むすべての顧客を返します。, 顧客に注文がない場合、列- orderNumberおよび- statusの値は- NULLです。,
テーブルcustomersとordersの両方に同じ列名(customerNumber)があるため、次のようにUSING構文を使用できます。
Code language: SQL (Structured Query Language) (sql)
次の句は同等です。
Code language: SQL (Structured Query Language) (sql)
および
Code language: SQL (Structured Query Language) (sql)
LEFT JOIN句をINNER JOIN句に置き換えると、少なくとも一つの注文を持つ顧客のみが取得されます。,
2)mysql LEFT JOIN句を使用して一致しない行を見つける
LEFT JOIN句は、別のテーブルから一致する行を持たないテーブル内の行を見つけ,”>
注文のない顧客を見つけるには:
Code language: SQL (Structured Query Language) (sql)
3)MySQL LEFT JOINを使用して三つのテーブルを結合します
次の三つのテーブルを参照してくださいemployees、customers、およびpayments:
この例では、二つのLEFT JOIN三つのテーブルを結合する句:employees、customers、およびpayments。,
Code language: SQL (Structured Query Language) (sql)
この画像は、部分的な出力を示しています:
それがどのように動作します。
- 最初のLEFT JOINは、各従業員を表すすべての従業員と顧客を返します。NULL従業員が顧客を担当していない場合。
- 二番目のLEFT JOINは、従業員で表される各顧客の支払いを返します。NULL顧客に支払いがない場合。
WHERE句の条件と対, ON句
次の例を参照してください。
Code language: SQL (Structured Query Language) (sql)
この例では、LEFT JOIN句を使用して、テーブルordersおよびorderDetailsからデータをクエリしました。 このクエリは、注文番号10123の注文とその明細を返します。,
ただし、条件をWHERE句からON句に移動する場合:
Code language: SQL (Structured Query Language) (sql)
それは異なる意味を持ちます。,
この場合、クエリはすべての注文を返しますが、注文のみ10123次の図のように、広告申込情報が関連付けられます。
INNER JOIN句、ON句の条件は、WHERE句の条件と同じです。
このチュートリアルでは、MySQLのLEFT JOIN句を使用して複数のテーブルからデータを結合する方法を学習しました。,p>
- このチュートリアルは役に立ちましたか?
- イェスノ