1つのテーブルを結合する (自己結合)

スポンサーリンク
スポンサーリンク

1つのテーブルを結合する (自己結合)

自己結合
SELECT * FROM テーブル1 AS 別名1 INNER JOIN テーブル2 AS 別名2 ON 別名1.フィールド = 別名2.フィールド;

元テーブル

select * from SQL人間関係 as t1 inner join SQL人間関係 as t2 on t1.苦手な人 = t2.ID

select t1.ID, t1.氏名, t2.氏名 from SQL人間関係 as t1 inner join SQL人間関係 as t2 on t1.苦手な人 = t2.ID

1つのテーブルに「別名」をつけて結合を行うと、1つのテーブルの中で「自己結合」を行うことができる。

結合後のフィールド名にも別名を使用する

select t1.ID, t1.氏名 as この人は, t2.氏名 as この人が苦手 from SQL人間関係 as t1 inner join SQL人間関係 as t2 on t1.苦手な人 = t2.ID

自己結合を行う際には、同名フィールドが存在するために、SQLの結果セットを格納したFieldオブジェクトのNameプロパティは「別名.フィールド名」となる。
これでは見にくいのでフィールド名にも「別名」を使用する。

特定の値を元に結合を行う

自己結合
SELECT * FROM テーブル1, テーブル2 WHERE テーブル1.基準となるフィールド BETWEEN テーブル2.最小値フィールド AND テーブル2.最大値フィールド;

元テーブル

SQLテスト結果

SQL評価

select SQLテスト結果.氏名, SQLテスト結果.点数, SQL評価.評価 from SQLテスト結果, SQL評価 where SQLテスト結果.点数 between SQL評価.最小値 and SQL評価.最大値;

「SQLテスト結果」テーブルの「点数」フィールドの値を「SQL評価」テーブルの「最小値」フィールドと「最大値」フィールドの値を元にして結合し、対応する「評価」フィールドの値を取得している。

スポンサーリンク
シェアする
スポンサーリンク
あんとんさんち 覚え書き