OpenOffice.org 初心者入門講座 で最も基本的なクエリーの作り方(Q01Prefecture)は解説しましたので、今回はその続きになります。まだの方は先にそちらをご覧ください。
今回は2つのテーブルを共通のフィールドで関連付けて、まるで1つのテーブルのように表示する方法を解説します。これがリレーショナルデータベースでクエリーを活用する基本となります。クエリーがわかれば、Base はわかります。
【1】Base を起動して、「sampleDB070.odb」を開きます。

【2】クエリーを表示します。

【3】「デザイン表示でクエリーを作成」をクリックします。

【4】「テーブルまたはクエリーの追加」ダイアログボックスで、「表」を選択すると、テーブルの一覧が表示されます。

【5】「クエリー」を選択すると、クエリーの一覧が表示されます。

【6】「表」を選択し、「T02City」を選択したら、「追加」ボタンをクリックします。

【7】「閉じる」ボタンをクリックします。

【8】クエリーデザイン画面に、「T02City」が追加されました。

【9】「CITY_CD」をダブルクリックします。

【10】「CITY_CD」が画面下に選択されました。

【11】同様に「CITY_NAME」、「PREF_CD」を選択します。

【12】「クエリーの実行」ボタンをクリックします。

【13】クエリーの実行結果が表示されました。

しかし都道府県名は表示されていません。有名な都市ならわかりますが、日本全国には市町村が1900以上あります。都道府県も一緒に表示されていたほうがわかりやすいです。
そこで次は都道府県も表示してみましょう。
【14】メニューから「表示 → プレビュー」を選択します。

【15】クエリーデザイン画面に戻りました。

*この戻る操作を覚えてください。
【16】「テーブルまたはクエリーの追加」ボタンをクリックします。

【17】ダイアログボックスで、「T01Prefecture」を追加します。

【18】クエリーデザイン画面に「T01Prefecture」が追加されました。

【19】マウスで T02City の「PREF_CD」を、T01Prefecture の「PREF_CD」にドラッグ&ドロップします。

*逆でも同じです。
【20】テーブル同士が「PREF_CD」で関連付けられました。

【21】T01Prefecture の「PREF_NAME」をダブルクリックして選択します。

【22】「クエリーの実行」ボタンをクリックします。

【23】今度は都道府県名が表示されました。

【24】他の都道府県も表示されているか確認してください。

ここまでの作業を保存しましょう。
【25】「保存」ボタンをクリックします。

【26】クエリー名に「Q02City」と入力し、「OK」ボタンをクリックします。

【27】クエリーのタイトルが変わりました。

【28】保存したらクエリーは閉じてください。

【29】データベースファイルウィンドウに「Q02City」が表示されています。

【30】作成したクエリーは、クエリーを実行したり、編集、削除することができます。

【31】復習を兼ねて、「Q02City」を編集で開き、CITY_CD の並べ替えを「昇順」に設定してください。

設定したら保存します。
【解説】
(1) PREF_CD は両方のテーブルにありますが、必ず T02City 側の PREF_CD を選択します。
これはとても重要なポイントです。クエリー Q02City の主役となるテーブルは、 T02City です。しかし T02City だけでは都道府県名が表示できないので、T01Prefecture を追加しました。つまり T01Prefecture は脇役です。
もし T01Prefecture 側の PREF_CD を選択した場合、このクエリーから作成したフォームでは、データが入力できないなどの不具合の原因となります。
(2)クエリーを使うと、フィールドの並び順は自由に入れ替えることができます。また目的のフィールドだけを選んで表示することができます。
(3)クエリーを使うと、複数のテーブルを関連付けて、まるで一つのテーブルのように、データを表示することができます。
(4)レコードは必ずしも番号順に表示されるとは限りませんので、並べ替えを設定するようにしてください。
【ワンポイント】
余裕のある方は、今回のようなクエリーをデザインした場合、どのようなSQL文ができるのか見てください。今はSQL文の意味がわからなくても結構です。SQL文を見慣れることが大事です。
