同じ表の列の値で結合します。
目次
構文
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 | +--------+-------------+-----------+--------+
上の表では友達の名前は入っていますが、友達の電話番号を表示することができません。
このような場合に自己結合を使用します
友達の電話番号を表示する例です
ysql> 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 | +--------+-------------+-----------+--------+-------------+