ホームページ >データベース >mysql チュートリアル >自己結合は単一テーブル内のデータをどのように関連付けることができますか?

自己結合は単一テーブル内のデータをどのように関連付けることができますか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-13 11:25:12507ブラウズ

How Can Self Joins Help Relate Data Within a Single Table?

自己とのつながりについての深い理解: ガイド

リレーショナル データベース管理システムでは、自己結合はテーブルを自分自身に結合できる強力な操作です。これは、テーブル内の異なる行のデータを比較または相関させる必要がある場合に特に便利です。

自己接続を使用する場合

テーブルに同じテーブル内のデータを参照する列が含まれている場合は、自己結合を使用する必要があります。一般的な例は、現在の従業員の上司を指す SupervisorID 列を含む従業員テーブルです。

自己結合を実行するために、テーブルは実際には 2 つのインスタンスに分割され、それぞれ e1e2 と呼ばれます。 e1 は元のテーブルを表し、e2 はそのコピーです。すると、結合条件はe1.column = e2.columnとなります。

次の従業員テーブルについて考えてみましょう:

EmployeeID FirstName LastName SupervisorID
1 John Doe 2
2 Mary Smith NULL
3 Jane Brown 1

データをクエリして従業員とその上司に関する情報を 1 行で取得するには、自己結合を使用できます。

<code class="language-sql">SELECT e1.EmployeeID, 
       e1.FirstName, 
       e1.LastName,
       e1.SupervisorID, 
       e2.FirstName AS SupervisorFirstName, 
       e2.LastName AS SupervisorLastName
FROM Employee e1
LEFT OUTER JOIN Employee e2 ON e1.SupervisorID = e2.EmployeeID</code>

このクエリは次の結果を出力します:

EmployeeID FirstName LastName SupervisorID SupervisorFirstName SupervisorLastName
1 John Doe 2 Mary Smith
3 Jane Brown 1 John Doe

以上が自己結合は単一テーブル内のデータをどのように関連付けることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。