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

テーブルA
ID

テーブルB
ID

種類

テーブルC
ID

種類
備考

テーブルCはBの詳細をかいたようなものになっていて、希望した時だけみられるようになっています(クリックする)。

これらのテーブルをもとにクエリーを作成しました。
テーブルA-B-Cの「ID」でリレーションがされています。
B-Cの「年」もリレーションされています。
たとえば、10というIDの人がいて、2001年と2002年のデータがあったとします。

ID | 年   | 種類 | 備考
10 | 2001 | みかん |
10 | 2002 | りんご | 青森産
10 | 2002 | みかん |愛媛産
10 | 2002 | めろん |

というような感じだとします。
これがそれぞれABCに入っています。

クエリーのリレーションで「種類」にリレーションを貼らないと、
10 | 2002 | りんご | 青森産
10 | 2002 | りんご | 愛媛産
10 | 2002 | りんご |
10 | 2002 | みかん | 青森産
10 | 2002 | みかん | 愛媛産
10 | 2002 | みかん |
10 | 2002 | めろん | 青森産
10 | 2002 | めろん | 愛媛産
10 | 2002 | めろん |
とダブッてしまい、「種類」でリレーションをはると

10 | 2002 | りんご | 青森産
10 | 2002 | みかん | 愛媛産

と、備考に何かが入ってるものしか出なくなってしまいます。

これを回避するにはどのようにしたらいいのでしょうか?

よろしくお願いします。

AC2000です。

A 回答 (4件)

>あいまいな外部結合が含まれているので


リレーションシップでテーブルBとテーブルCのリレーションに種類のリレーション
を加えないとダメなようですね。インデックスも無いようなので。
リレーションの編集でID同士・年同士・種類同士で1対1及び1対多のリレーション
の編集をすれば良いと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

無事希望のことができました。

ありがとうございました。

お礼日時:2002/12/03 13:39

項目の違いは関係無いと思いますが・・・



試しに、テーブルBの全項目をテーブルCに結合してみては
いかがでしょう?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

#4の回答で無事解決しました。
ありがとうございました。

お礼日時:2002/12/03 13:39

私の読解力不足なんでしょうけど、


どのような結果が欲しいのか判りません。
テーブルCに、
> ID | 年   | 種類 | 備考
> 10 | 2001 | みかん |
> 10 | 2002 | りんご | 青森産
> 10 | 2002 | みかん |愛媛産
> 10 | 2002 | めろん |
というデータが入っているのですから、
Cだけを使って検索すれば良いのでは?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

すいません、実際は他にも項目がたくさんあるんです。
ただ質問用に必要なところだけを抜き出して書いたので…。

お礼日時:2002/12/03 11:10

テーブルBとテーブルCの種類のリレーションの結合プロパティで結合の種類を


テーブルBの全てのレコードとテーブルCの同じ結合フィールドを持つレコード
だけを含める。に変更してみてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

「種類」のリレーションをご指摘のものにしますと、
------------------------------------------------------------
実行時エラー '3258':

あいまいな外部結合が含まれているので、SQLステートメントを実行できません。いずれかの結合を最初に実行するために、第一次結合を実行する分割クエリを作成し、SQLステートメントにそのクエリを含めてください。
------------------------------------------------------------
というエラーになってしまいました。

IDも同じように変更すると、「種類」のリレーションがない状態(ダブリがある)になってしまいました。

どのようにすればいいのでしょうか?

お礼日時:2002/12/03 10:26

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