概要 :このチュートリアルでは、SQLite LEFT JOIN
の使用方法を学習します 複数のテーブルからデータをクエリする句。
SQLite LEFT JOIN
の紹介 条項
INNER JOIN
に似ています 句、LEFT JOIN
句は、SELECT
のオプションの句です。 声明。 LEFT JOIN
を使用します 複数の関連するテーブルからデータをクエリする句。
AとBの2つのテーブルがあるとします。
- Aにはm列とf列があります。
- Bにはn列とf列があります。
LEFT JOIN
を使用してAとBの間の結合を実行するには 句では、次のステートメントを使用します:
SELECT
a,
b
FROM
A
LEFT JOIN B ON A.f = B.f
WHERE search_condition;
Code language: SQL (Structured Query Language) (sql)
式A.f = B.f
は条件式です。等号(=)演算子の他に、より大きい(>)、より小さい(<)などの他の比較演算子を使用できます。
ステートメントは、以下を含む結果セットを返します。
- テーブルBに対応する行があるテーブルA(左側のテーブル)の行。
- テーブルAの行とテーブルBの行は
NULL
で埋められています テーブルAの行に対応する行がテーブルBにない場合の値。
つまり、テーブルBに一致する行があるかどうかに関係なく、テーブルAのすべての行が結果セットに含まれます。
WHERE
がある場合 ステートメントの句、search_condition
WHERE
で LEFT JOIN
の一致後に句が適用されます 条項が完了します。
次のLEFT JOIN
の図を参照してください。 AテーブルとBテーブルの間の句。
テーブルAのすべての行が結果セットに含まれます。
2行目が(a2,2)
であるため テーブルBに対応する行LEFT JOIN
がありません 句は偽の行を作成します NULL
で埋められます 。
次のベン図は、LEFT JOIN
を示しています。 条項。
LEFT OUTER JOIN
LEFT JOIN
と同じです 。
SQLite LEFT JOIN
例
artists
を使用します およびalbums
デモンストレーション用のサンプルデータベースのテーブル。
1枚のアルバムは1人のアーティストのものです。ただし、1人のアーティストが0枚以上のアルバムを持っている場合があります。
LEFT JOIN
を使用して、アルバムを持っていないアーティストを検索するには 条項では、アーティストとそれに対応するアルバムを選択します。アーティストがアルバムを持っていない場合、AlbumId
の値 列はNULL.
最初にアルバムを持っていないアーティストを表示するには、2つの選択肢があります。
- まず、
ORDER BY
を使用しますAlbumId
の行を一覧表示する句NULL
です 最初に値を指定します。 - 次に、
WHERE
を使用します 句とIS NULL
アルバムを持っていないアーティストのみを一覧表示する演算子。
次のステートメントは、LEFT JOIN
を使用しています ORDER BY
を含む句 条項。
SELECT
artists.ArtistId,
AlbumId
FROM
artists
LEFT JOIN albums ON
albums.ArtistId = artists.ArtistId
ORDER BY
AlbumId;
Code language: SQL (Structured Query Language) (sql)
試してみてください
次のステートメントは、LEFT JOIN
を使用しています WHERE
を含む句 条項。
SELECT
artists.ArtistId
, AlbumId
FROM
artists
LEFT JOIN albums ON
albums.ArtistId = artists.ArtistId
WHERE
AlbumId IS NULL;
Code language: SQL (Structured Query Language) (sql)
試してみてください
このチュートリアルでは、SQLite LEFT JOIN
の使用方法を学びました。 複数のテーブルからデータをクエリする句。