表に別な名前を付ける(表の別名指定)

スポンサードリンク

表(テーブル)に別の名前を付けることができる。

表に別な名前を付けることで、SQL文を簡潔に記述できたり、同じ表を結合する自己結合などが行える。

表の別名指定の方法

表に別な名前を指定するときの記述形式は、FROM句で以下のように記述する。

表の別名指定の記述形式

FROM 表の名前 AS 表の別の名前
または
FROM 表の名前 表の別の名前
*ASは省略可能である。

例えば、学籍表をAという別名指定を行う場合は、FROM句で「FROM 学籍表 AS A」または「FROM 学籍表 A」と記述すればよい。

《例題》

売上表をX、顧客表をYという別名指定をおこない顧客CDで表を結合する。

SELECT文

SELECT *
FROM 売上表 X, 顧客表 Y
WHERE X.顧客CD=Y.顧客CD

− 実行結果 −

売上No日付X.顧客CDY.顧客CD顧客名
12001/05/27105105福岡商事
22001/05/27101101二島商店
32001/05/27103103大阪物産
42001/06/27102102姫路商事
52001/06/27104104神戸商店
62002/01/31106106明石物産

WHERE句で「WHERE X.顧客CD=Y.顧客CD」と記述している。表の別名指定をおこなっていなければ「WHERE 売上表.顧客CD=顧客表.顧客CD」と記述しなければならない。このことから売上表がX、顧客表がYという別名で処理されていることが分かる。

同じ表を結合する(自己結合)

表に別の名前を付けることで同じ表を結合する自己結合ができる。

自己結合のイメージ

《例題》

社員表より各社員のリーダーの名前を表示させる。

社員表
社員No社員名リーダー
001くく001
002まゆ002
003りん001
004むふ001
005メル002

考え方は社員表を表の別名指定を使ってリーダー表を定義する。そして、社員表のリーダーとリーダー表の社員Noで表を結合すればよい。

自己結合

社員表とリーダーを結合すると以下のようになる。

社員表とリーダー表の結合結果

以上からSELECT文は次のようになる。

SELECT文

SELECT 社員表.社員名,リーダー.社員名 AS リーダー
FROM 社員表,社員表 リーダー
WHERE 社員表.リーダー=リーダー.社員No

− 実行結果 −

社員名リーダー
くくくく
まゆまゆ
りんくく
むふくく
メルまゆ

自分自身がリーダーの場合は表示しないようにするには、社員表のリーダーとリーダーの社員Noが等しくないものを表示させればよい。したがって、WHERE句に以下の条件を追加すればよい。

SELECT文

SELECT 社員表.社員名,リーダー.社員名 AS リーダー
FROM 社員表,社員 リーダ
WHERE 社員表.リーダー=リーダー.社員No AND
社員表.リーダー <> リーダー.社員No

− 実行結果 −

社員名リーダー
りんくく
むふくく
メルまゆ

自己結合に限らず表の結合すべてに共通して言えることだが、SELECT文から実行結果を求めるには、まず表の結合結果を書いて、その後に抽出条件に合った行を選べばよい。ポイントは、実際に書くことである。