2011/07/21

外部結合で参照列が複数あるSQL

テーブルAには

ID | NAME
001 | 太郎
002 | 次郎
003 | 三郎


がはいっていて、

テーブルBには、テーブルAのIDを参照して

ID | GROUP_NAME | FRIEND_ID
001 | さくら | 003
002 | ぽぷら | 002
003 | いちご | 001


のようにはいっている。

テーブルBからセレクトするとき、テーブルAを結合して、IDとFRIEND_IDの二つの列に対応するNAMEと取得したい場合いかのように書く

select
テーブルB.ID, テーブルB.GROUP_NAME,テーブルB.FRIEND_ID,T1.NAME as HoninName, T2.NAME as FriendName
from テーブルB
left join
テーブルA as T1
on T1.NAME = テーブルB.ID
left join
テーブルA as T2
on T2.Name = テーブルB.FRIEND_ID