SQLite Self-Join
概要:このチュートリアルでは、テーブルを自分自身に結合することを可能にするSQLite self-joinと呼ばれる特このチュートリアルを進める前に、INNER JOIN
LEFT JOIN
句に精通している必要があります。
SQLite self-join入門
self-joinは、LEFT JOIN
INNER JOIN
句を使用してテーブルを自分自身に結合できる特別な種類の結合です。 Self-joinを使用して、同じテーブル内の他の行と行を結合する結果セットを作成します。クエリ内で同じテーブルを複数参照することはできないため、self-joinを使用する場合は、テーブル別名を使用してテーブルに別の名前を割り当てる必要があ
自己結合は、同じテーブル内の同じ列または異なる列の値を比較します。 自己結合に関与するテーブルは1つだけです。多くの場合、self-joinを使用して、テーブルに格納されている親/子関係を照会したり、実行中の合計を取得したりします。
SQLite self-join examples
サンプルデータベースのemployees
テーブルをデモ用に使用します。P>
employees
ReportsTo
ReportsTo
EmployeeId
ReportsTo
NULL
です。
誰が誰の直接報告であるかに関する情報を取得するには、次のステートメントを使用します:
それを試してみてください
ステートメントは、INNER JOIN
employees
employees
ステートメントは、INNER JOIN
句を使用して結合しました。>自分自身に。 employees
テーブルには、従業員とマネージャーの二つの役割があります。
INNER JOIN
employees
テーブルをそれ自身に結合したため、結果セットにはmanager列にNULL
||
は、複数の文字列を単一の文字列に連結することに注意してください。 この例では、名、スペース、および姓を連結することにより、連結演算子to fromを従業員のフルネームから使用します。誰にも報告しないCEOを照会する場合は、上記のクエリでINNER JOIN
LEFT JOIN
句に変更する必要があります。p>
Andrew Adams
彼は誰も報告していないので、CEOです。次のクエリと同じ都市にいる従業員を検索するには、自己結合テクニックを使用できます。
Try It
結合条件には二つの式があります:
e1.city = e2.city
同じ都市に位置する両方の従業員がいることを確認するe.firstname <> e2.firstname AND e1.lastname <> e2.lastname
e1
e2
従業員がいないことを前提とした同じ従業員ではないことを確認する同じ名と姓を持つ人。このチュートリアルでは、SQLiteの自己結合技術を使用してテーブルを自分自身に結合する方法を示しました。- このチュートリアルは役に立ちましたか?
div