ホームページ >データベース >mysql チュートリアル >自己結合は単一テーブル内のデータをどのように関連付けることができますか?
自己とのつながりについての深い理解: ガイド
リレーショナル データベース管理システムでは、自己結合はテーブルを自分自身に結合できる強力な操作です。これは、テーブル内の異なる行のデータを比較または相関させる必要がある場合に特に便利です。
自己接続を使用する場合
テーブルに同じテーブル内のデータを参照する列が含まれている場合は、自己結合を使用する必要があります。一般的な例は、現在の従業員の上司を指す SupervisorID
列を含む従業員テーブルです。
自己結合を実行するために、テーブルは実際には 2 つのインスタンスに分割され、それぞれ e1
と e2
と呼ばれます。 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 サイトの他の関連記事を参照してください。