Articles

における左結合の包括的なガイドSQL LEFT JOIN

概要:このチュートリアルでは、複数のテーブルからデータを取得できるSQL LEFT JOINと呼ばれる別の種類の結合を紹介します。

SQL LEFT JOIN句の概要

前のチュートリアルでは、結合条件に一致する両方のテーブルに少なくとも一つの行がある場合に行を返す内部結合につい Inner join句は、他のテーブルの行と一致しない行を削除します。,

ただし、left joinは、右側のテーブルに一致する行があるかどうかにかかわらず、左側のテーブルからすべての行を返します。

我々は二つのテーブルAとBを持っていると仮定します.テーブルAは四つの行を持っています1,2,3と4. テーブルBには、3、4、5、6の行もあります。

テーブルAとテーブルBを結合すると、テーブルA(左のテーブル)のすべての行が、テーブルBに一致する行があるかどうかにかかわらず、結果セットに含

SQLでは、次の構文を使用してテーブルAとテーブルBを結合します。,

LEFT JOIN句はFROM句の後に表示されます。 ONキーワードに続く条件は、結合条件と呼ばれますB.n = A.n

SQL LEFT JOIN examples

SQL LEFT JOIN two tables examples

countriesおよびlocationsテーブルを見てみましょう。

各場所は一つだけの国に属しますが、それぞれの国はゼロ以上の場所を持つことができます。, 国テーブルと場所テーブルの関係は一対多です。locationsテーブルのcountry_id列は、countriesテーブルのcountry_id列にリンクする外部キーです。

米国、英国、および中国の国名を照会するには、次の文を使用します。,0bc”>

アクションでそれを参照してください

次のクエリは、米国、英国、中国にある場所を取得します。

アクションでそれを参照してください

ここで、left join句を使用して、countriesテーブルとlocationsテーブルを次のクエリとして結合します。

アクションで参照してください

where句の条件が適用され、ステートメントがus、uk、chinaの行からのデータのみを取得するようになります。,

LEFT JOIN句を使用するため、countriesテーブルのWHERE句の条件を満たすすべての行が結果セットに含まれます。

countriesテーブル内の各行について、LEFT JOIN句はlocationsテーブル内の一致する行を検索します。

少なくとも一つの一致する行が見つかった場合、データベースエンジンは両方のテーブルの一致する行の列からのデータを結合します。

一致する行が見つからない場合、たとえばcountry_id CN、countriesテーブルの行が結果セットに含まれ、locationsテーブルの行がNULL値で埋められます。,

右側のテーブルの一致しない行はNULL値で埋められるため、LEFT JOIN句をテーブル間の一致しない行に適用できます。

たとえば、locationsテーブルに場所がない国を検索するには、次のクエリを使用します。

アクションでそれを参照してください

SQL LEFT3つのテーブルを結合する例

次のテーブルを参照してください:地域、国、および場所。,

一つの地域には、それぞれの国が一つの地域に位置している間、ゼロまたは多くの国があります。 国と地域の関係テーブルは一対多です。 Countriesテーブルのregion_id列は、countriesテーブルとregionsテーブル間のリンクです。,

次のステートメントは、3つのテーブルを結合する方法を示しています。regions、countries、およびlocations:

アクションでそれを参照してください

これで、SQL LEFT JOIN句がどのように機能するかをよく理解し、LEFT JOIN句を複数のテーブルからデータをクエリするためにLEFT JOIN句を適用する方法を知っている必要があります。テーブル。/p>

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