アプリ版:「スタンプのみでお礼する」機能のリリースについて

テーブルが2つあってクエリーを作成したいのですが、

<テーブル1>
氏名  項目1  項目2  項目3
山田  A    B    C

というテーブルが1つあって、それぞれの項目1~3のフィールド
のA~Cに対して

<テーブル2>
項目コード   項目名
A       あいうえお
B       かきくけこ
C       さしすせそ

というテーブルとリンクさせ
氏名  項目1     項目2     項目3
山田  あいうえお   かきくけこ   さしすせそ

とあらわれるように作成したいのですが、それぞれ項目1~3に対して
リンクさせたいのが、「テーブル2」を使用します。
この場合今は同じ内容で「テーブル2」を3つ作成してそれぞれでリンク
させていますが、数が多くなりすぎると「リンクが複雑すぎます」とはねられます。「テーブル2」1つでリンクさせる方法はありますか?

A 回答 (6件)

>はい。

たくさんの項目がずら~~~~っと横に並んでいるのです。(45列も・・・)

Accessのバージョンは何でしょう?
Access97のクエリーではテーブルは32個までしか使用できません。
    • good
    • 0

他の人の回答と同等ですが、アクセスの画面からの操作手順を示します。



(1)新規のクエリーをデザインビューで作成します。

(2)テーブル1を追加します。

(3)氏名をダブルクリックします(クエリーの1番目の出力項目となります)

(4)テーブル2を追加します。

(5)テーブル1の項目1をドラッグして、テーブル2の項目コードにドロップします。(2つの項目が線で、結ばれます)

(6)テーブル2の項目名をダブルクリックします(クエリーの2番目の出力項目となります)

あとは(4)から(6)を、項目2および項目3について繰り返せば目的のクエリーができあがります。

(7)クエリーを実行する。メニューのクエリー(Q)から実行(R)を選びます。

※結局、テーブル2は3回追加することになります。

これはあくまで追加であってテーブル2を作成しているわけではありませんので、質問の答えとして妥当だと思われます。
ひょっとすると、もっと多くの列で行いたいのでしょうか?もしそうならば、正確な例を提示してくださいね。
 
補足。
テーブルの追加方法
(1)メニューのクエリー(Q)からテーブルの表示(T)を選びます。
(2)テーブルの一覧が表示されますので追加したいテーブルを選んで追加(A)ボタンをクリックします。

この回答への補足

はい。たくさんの項目がずら~~~~っと横に並んでいるのです。(45列も・・・)それでやはり追加、コピーして同じようにしても複雑とでます。
No.2.4の方の方法もやはり同じになってしまいます。
すみません・・・・。勉強不足です。

補足日時:2002/08/21 12:29
    • good
    • 0

簡単にクエリで処理させるには


テーブル1の選択クエリを作ってそのクエリにテーブルの追加でテーブル2を必要
な数だけ追加します。テーブル2_1という表示になるはずです。
テーブル1の項目1とテーブル2を 項目2とテーブル2_1を 項目3とテーブル2_2を
リレーションして各々項目をクエリに追加すれば「リンクが複雑すぎます」のメッセージ
は出ないと思うのですが。
    • good
    • 0

>SELECT


>T1.氏名,
>(select テーブル2.項目名 From テーブル2 WHERE テーブル2.項目コード = T1.項目1) as 項目1,
>(select テーブル2.項目名 From テーブル2 WHERE テーブル2.項目コード = T1.項目2) as 項目2,
>(select テーブル2.項目名 From テーブル2 WHERE テーブル2.項目コード = T1.項目3) as 項目3
>FROM テーブル1 as T1;

これの原形は、以下のSQLです。
SELECT
T1.氏名,
T1.項目1,
T1.項目2,
T1.項目3
FROM テーブル1 as T1;
※T1は、テーブル1の代わりの呼び名です。

これだと、結果は
  山田 A B C
が帰ってきます。
なので、まずは項目1の内容の”A”と言うコードをテーブル2から検索してこないといけないので
>(select テーブル2.項目名 From テーブル2 WHERE テーブル2.項目コード = T1.項目1) as 項目1
とします。これで、項目コード”A”の項目名”あいうえお”が取得できます。
項目2・3も同様です。
そして、この文には呼び名が無いのでasで名前を付けてやります。

説明が下手なので、うまく伝わらないと思いますが・・・
こんな説明で如何でしょうか。

この回答への補足

すみません。アクセスの「超図解」のSQLクエリーを読みながらやってみましたが、さっぱり理解できません。ユニオン、パススルー、データ定義と3種類あるのか・・・。ほ~・・・っとわかるだけで、「じゃあ、この場合はなに!?」とそこからわかりません。もっと勉強してからお聴きすることにします。いろいろ教えて頂いてありがとうございました。独学でできるものなのでしょうか?おすすめのテキストなどありますか?

補足日時:2002/08/21 12:28
    • good
    • 0

テーブルの表示画面で、テーブル2を選んで3回追加ボタンを押してください。



で、テーブル1の項目1、項目2、項目3と、3つのテーブル2をそれぞれ結合していけばOKです。

追加した3つのテーブルの名前を変更するには、テーブルを右クリックして出てくるメニューのプロパティの中の別名を変更すれば変わります。
    • good
    • 0

あまりクエリーやってないので、間違っているかもしれないですけど


こちらでやってみたら、望みの結果と同じになったので掲載します。
以下のSQL文で如何でしょうか?

SELECT
T1.氏名,
(select テーブル2.項目名 From テーブル2 WHERE テーブル2.項目コード = T1.項目1) as 項目1,
(select テーブル2.項目名 From テーブル2 WHERE テーブル2.項目コード = T1.項目2) as 項目2,
(select テーブル2.項目名 From テーブル2 WHERE テーブル2.項目コード = T1.項目3) as 項目3
FROM テーブル1 as T1;

この回答への補足

早速お答え頂きありがとうございます。ただ、初心者で意味がよくわかりません・・・。SQL文て?くらいのレベルです。ウイザードみたいなので導いてくれるものなのでしょうか?申し訳ありませんが、式の説明をして頂けたらありがたいです。どうもすみません。

補足日時:2002/08/20 17:21
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!