MySQL LEFT JOIN (日本語)

概要:このチュートリアルでは、MySQLLEFT JOIN句と、それを複数のテーブルからデータを照会するために適用する

MySQL LEFT JOINの概要

LEFT JOINを使用すると、複数のテーブルからデータをクエリすることができます。 INNER JOIN句と同様に、LEFT JOINは、SELECT文のオプション句であり、FROM句の直後に表示されます。,

二つのテーブルを結合するとしますt1t2

次のステートメントは、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–Venn Diagram

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を使用して三つのテーブルを結合します

次の三つのテーブルを参照してくださいemployeescustomers、およびpayments

この例では、二つのLEFT JOIN三つのテーブルを結合する句:employeescustomers、および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>

  • このチュートリアルは役に立ちましたか?
  • イェスノ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です