概要:このチュートリアルでは、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>
- このチュートリアルは役に立ちましたか?
- イェスノ