
自己結合
自己結合は、同じテーブルを2度使用することにより二つのテーブルとして扱つかい同じテーブルが二つあるかのように結合させます。
ん・・・・同じテーブルなら結合しなくてもいいじゃん・・ともったあなた・・結構使う機会があるので覚えておきましょう。
別に名前は覚えなくてもいいんだけど・・・・使い方だけね
部署(エイリアス:A.部署)
| 部署番号 | 部署名 | 親部署番号 |
| 001 | 製品部 | |
| 002 | 製品営業部 | 001 |
| 003 | 製品開発部 | 002 |
|
部署(エイリアス:B.部署)
| 部署番号 | 部署名 | 親部署番号 |
| 001 | 製品部 | |
| 002 | 製品営業部 | 001 |
| 003 | 製品開発部 | 002 |
|
SELECT A.部署番号, A.部署名, A.親部署番号,B.部署名 FROM 部署 A,部署 B
WHERE A.親部署番号=B.部署番号
| A.部署番号 | A.部署名 | A.親部署番号 | B.部署名 |
| 001 | 製品部 | | |
| 002 | 製品営業部 | 001 | 製品部 |
| 003 | 製品開発部 | 001 | 製品部 |
製品部営業の親部署は製品部となるわけですね
(製品部の配下には製品営業部と製品開発部の二つがあるところもわかりますね)
気づいたかたもいると思いますがテーブルの名前も列の名前も全て同じなんですよね・・
そらそうだ。同じテーブルなんだからね・・・
これを解決するために、テーブルに一時的な名前を付けます。この一時的な名前のことをエイリアスといいます。
例ではAとかBとかつけてますね。また、エイリアスはクエリの FROM 句に定義します。
|
|