1. ホーム
  2. sql

[解決済み] 自己結合の説明

2023-02-18 08:31:36

質問

自己結合の必要性がよくわかりません。どなたか説明していただけませんか?

簡単な例があれば非常に助かります。

どのように解決するのですか?

自己結合を2つの同じテーブルとして見ることができます。しかし、正規化では、テーブルのコピーを2つ作成することはできないので、自己結合で2つのテーブルを持つことをシミュレートするだけです。

2つのテーブルがあるとします。

テーブル emp1

Id Name Boss_id            
1   ABC   3                   
2   DEF   1                   
3   XYZ   2                   

テーブル emp2

Id Name Boss_id            
1   ABC   3                   
2   DEF   1                   
3   XYZ   2                   

では、各従業員の名前を上司の名前と一緒に取得したい場合。

select c1.Name , c2.Name As Boss
from emp1 c1
    inner join emp2 c2 on c1.Boss_id = c2.Id

とすると、以下のような表が出力されます。

Name  Boss
ABC   XYZ
DEF   ABC
XYZ   DEF