スポンサードリンク

SQL 複数テーブルの結合

今回はもう一つテーブルを増やし、都道府県、市町村、地域名まで表示してみましょう。

【1】Accessのファイル「SampleDB2.mdb」を起動し、「SQL練習」のSQLビュー画面を開いてください。

access-sql85.gif


【2】以下のSQL文を入力し、実行ボタン「!」をクリックします。

SELECT TOWN_CD,T03Town.CITY_CD,ZIP_CODE,PREF_NAME,CITY_NAME,TOWN_NAME
FROM T03Town,T02City,T01Prefecture
WHERE T03Town.CITY_CD = T02City.CITY_CD
AND T01Prefecture.PREF_CD = T02City.PREF_CD ;

access-sql90.gif


【5】新たに都道府県名が追加された地域一覧が表示されました。

access-sql91.gif

レコード数が121,882件であることを確認してください。「T01Prefecture」を追加する前後でレコード数が変わっていない場合は、正しく表示されています。


【6】「SQL練習」は保存しないで終了してください。


【解説】

前回と今回をくらべてみましょう。

・前回
SELECT TOWN_CD,T03Town.CITY_CD,ZIP_CODE,CITY_NAME,TOWN_NAME
FROM T03Town,T02City
WHERE T03Town.CITY_CD = T02City.CITY_CD;

・今回
SELECT TOWN_CD,T03Town.CITY_CD,ZIP_CODE,PREF_NAME,CITY_NAME,TOWN_NAME
FROM T03Town,T02City,T01Prefecture
WHERE T03Town.CITY_CD = T02City.CITY_CD
AND T01Prefecture.PREF_CD = T02City.PREF_CD ;

少し長くなっていますが基本は同じです。同じ名前のフィールドは「テーブル名.フィールド名」のかたちで指示します。

FROM T03Town,T02City,T01Prefecture
使用するテーブルを「,」(カンマ)で区切って書きます。

テーブル同士を関連付けるには、WHEREの部分で共通のフィールドを =(イコール)でつなげます。フィールド名が同じ場合は、「テーブル名.フィールド名」のかたちで指示する必要があります。

今回は3つのテーブルを使っていますので関係は2つです。
・T03TownとT02Cityの関係
・T02CityとT01Prefectureの関係

WHEREの条件が増えた時は「AND」でつなげて書くだけです。

スポンサードリンク






Access SQL初心者入門講座TOPへ