における左結合の包括的なガイド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>
- このチュートリアルは役に立ちましたか?
- イェスノ