自己結合

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

構文

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 |
+--------+-------------+-----------+--------+-------------+