【SQL】1つのレコードで複数の外部キーが同じテーブルを参照する場合のSQL文

『CakePHP Users in Japan』のフォーラム内の同名のスレッドには
CakePHPのModelの設定の仕方が載ってますが、素のSQLでは
どう書くんでしょうか?




★目指す結合テーブルの形
チーム№リーダーサブ
1安藤鹿島
2斉木竜口


team(外部キーを持ち、基礎となるテーブル)

idleader_id
(外部キー)
sub_id
(外部キー)
112
234


member(外部キーが参照するテーブル)

idname
1安藤
2鹿島
3斉木
4竜口




■外部結合する場合のSQL
※teamが優先される(team内の空白・無効セルがある行も表示される)


SELECT
team.id AS "チーム№",
Leader.name AS "リーダー",
Sub.name AS "サブ"

FROM
team

LEFT JOIN
member AS Leader
ON
team.leader_id = Leader.id

LEFT JOIN
member AS Sub
ON
team.sub_id = Sub.id
;


■内部結合する場合のSQL
※team内の空白・無効セルがある行は表示されない


SELECT
team.id AS "チーム№",
Leader.name AS "リーダー",
Sub.name AS "サブ"

FROM
team,
member AS Leader,
member AS Sub

WHERE
team.leader_id = Leader.id
AND
team.sub_id = Sub.id
;


要するに、ひとつのテーブルに対して『AS』を使って別名をいくつも作れば
よい、と。


SQLに関して(も)ほとんど知識がない僕は、CakePHPデバッグのレベルを
2に設定することで表示されるSQLを解読することで答えにたどりつきました。
…外部結合・内部結合の意味がやっとわかりました(w