Articles

SQLite Self-Join

概要:このチュートリアルでは、テーブルを自分自身に結合することを可能にするSQLite self-joinと呼ばれる特このチュートリアルを進める前に、INNER JOINLEFT JOIN句に精通している必要があります。

SQLite self-join入門

self-joinは、LEFT JOININNER JOIN句を使用してテーブルを自分自身に結合できる特別な種類の結合です。 Self-joinを使用して、同じテーブル内の他の行と行を結合する結果セットを作成します。クエリ内で同じテーブルを複数参照することはできないため、self-joinを使用する場合は、テーブル別名を使用してテーブルに別の名前を割り当てる必要があ

自己結合は、同じテーブル内の同じ列または異なる列の値を比較します。 自己結合に関与するテーブルは1つだけです。多くの場合、self-joinを使用して、テーブルに格納されている親/子関係を照会したり、実行中の合計を取得したりします。

SQLite self-join examples

サンプルデータベースのemployeesテーブルをデモ用に使用します。P>

employeesReportsToReportsToEmployeeIdReportsToNULLです。

誰が誰の直接報告であるかに関する情報を取得するには、次のステートメントを使用します:

それを試してみてください

ステートメントは、INNER JOINemployeesemployees

ステートメントは、INNER JOIN

句を使用して結合しました。>自分自身に。 employeesテーブルには、従業員とマネージャーの二つの役割があります。

INNER JOINemployeesテーブルをそれ自身に結合したため、結果セットにはmanager列にNULL||は、複数の文字列を単一の文字列に連結することに注意してください。 この例では、名、スペース、および姓を連結することにより、連結演算子to fromを従業員のフルネームから使用します。誰にも報告しないCEOを照会する場合は、上記のクエリでINNER JOINLEFT JOIN句に変更する必要があります。p>

Andrew Adams彼は誰も報告していないので、CEOです。次のクエリと同じ都市にいる従業員を検索するには、自己結合テクニックを使用できます。

Try It

結合条件には二つの式があります:

  • e1.city = e2.city同じ都市に位置する両方の従業員がいることを確認する
  • e.firstname <> e2.firstname AND e1.lastname <> e2.lastnamee1e2従業員がいないことを前提とした同じ従業員ではないことを確認する同じ名と姓を持つ人。このチュートリアルでは、SQLiteの自己結合技術を使用してテーブルを自分自身に結合する方法を示しました。
    • このチュートリアルは役に立ちましたか?

    div

コメントを残す

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