TOP > SQL>

自己結合

同じ表の列の値で結合します。

構文
SELECT 列名 FROM 表名1,表名2 WHERE 列名 = 列名;

テスト用の表です
使用例
mysql> select * from kozin;
+--------+-------------+-----------+--------+
| name   | tell        | school_no | friend |
+--------+-------------+-----------+--------+
| sasuke | 123-456-789 |         1 | akira  |
| kouzi  | 123-456-782 |         1 | akira  |
| akira  | 123-456-784 |         2 | sasuke |
+--------+-------------+-----------+--------+

上の表では友達の名前は入っていますが、友達の電話番号を表示することができません。
このような場合に自己結合を使用します

友達の電話番号を表示する例です
使用例
mysql> select k.name,k.tell,k.school_no,k.friend,k2.tell "友達の番号"
    -> from kozin k,kozin k2
    -> where k.friend = k2.name;
+--------+-------------+-----------+--------+-------------+
| name   | tell        | school_no | friend | 友達の番号  |
+--------+-------------+-----------+--------+-------------+
| akira  | 123-456-784 |         2 | sasuke | 123-456-789 |
| sasuke | 123-456-789 |         1 | akira  | 123-456-784 |
| kouzi  | 123-456-782 |         1 | akira  | 123-456-784 |
+--------+-------------+-----------+--------+-------------+
関連ページ
自然結合(NATURAL JOIN)
・自己結合
外部結合
お勧め商品
最近の記事
当サイトについて  免責事項  プライバシーポリシー
Copyright (C) Sasuke 2012 All rights reserved.