- ベストアンサー
ユニオンクエリーで連結されたテーブルを取得したい
ユニオンクエリーでいくつかのテーブルを連結しておりますが、このデータを選択した時に どのテーブルのデータを選択しているか、テーブル名を取得したいのですが、何か方法はありますでしょうか? 端的に言いますと、ユニオンクエリーで選択したデータの更新をしたいのです。 お分かりになる方がいらっしゃいましたら、どうぞご教授下さい。お願いします。
- xmoto
- お礼率80% (34/42)
- その他(データベース)
- 回答数2
- ありがとう数4
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ユニオン内の各クエリのフィールドはどのテーブルから抽出されたものかは、クエリの構造でわかりますよね。 で、それぞれのクエリのうち、どれにヒットしたのかが判明すれば、どのテーブルから抽出されたものかが判るかと思います。 なので、私ならば、ユニオン内の各クエリの末尾にフィールドを追加し、これに、例えば、1番目のクエリなら1、2番目のクエリなら 2 を固定でいれてしまいます。 すると、このフィールドを判定することで、間接的にそれぞれのフィールドがどのテーブルから来たものかがわかります。 Union A のクエリ ( select T1.f1 as FF1, T2.f2 as FF2, 1 as FF3 from T1,T2 where T1.f3=T2.f3 ) union all ( select T2.f1 as FF1, T3.f2 as FF2, 2 as FF3 from T2, T3 where T2.f3=T3.f3 ) union all ( select T3.f1 as FF1, T1.f2 as FF2, 3 as FF3 from T1,T3 where T1.f3=T3.f3 ) 実作業のクエリ Selct FF1,FF2,FF3 from A 結果 1,2,1 <- 一番目のクエリ、つまりFF1はT1、FF2はT2から取得 2,4,2 <- 二番目のクエリ、つまりFF1はT2、FF2はT3から取得 1,2,3 <- 三番目のクエリ、つまりFF1はT3、FF2はT1から取得 もっと楽な方法があるかもしれませんが・・・
その他の回答 (1)
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
unionした結果の元となるテーブルは、基本的に取得できないと思います。 なので、#1で書かれたような方法が、最も考えやすい方法なのではないでしょうか。 >端的に言いますと、ユニオンクエリーで選択したデータの更新をしたいのです。 >お分かりになる方がいらっしゃいましたら、どうぞご教授下さい。お願いします。 仮に、#1の方法で、元のテーブルを判断したとして・・ どうやって更新するんですか? 更新すべき情報を特定した後に、改めて更新命令を発効するのでしょうか?? どうせなら、”更新可能なクエリ”を模索した方が、更新すべきデータを特定した状態で、 カレントレコードを更新できるので、合理的な気がします。 ※RDBMSによって、更新可能なクエリの制限が違うので、必ず使えるとは限りませんが、 更新可能なクエリを使う方が合理的&効率的だと思います。
お礼
色々と考えてみましたが、実現できそうに無いと判断しました。 個々のテーブルをユニオンで結合しないと全体的な検索が出来ないのと 各テーブルに散らばっているデータをそれぞれに一括して更新をしたいと 考えていたのですが、どうにも無理ですね。 伝票単位で処理するように考え方を切り替えます。 ありがとうございました。
関連するQ&A
- ユニオンクエリの結果を、テーブルにするには?
ユニオンクエリを組んだあと、テーブルにしたくて、「テーブルの作成」をして実行を押すと、 「出力フィールドが必要です」とエラーが出てしまいます。 フィールドを選択しようとしても、空、なのですが、 どこで設定すればよいのでしょうか? ちなみに、ユニオンクエリを組み、実行すると、データは入っています。
- ベストアンサー
- その他MS Office製品
- ACCESSユニオンクエリから新テーブルを
ACCESS2007/2010で、ユニオンクエリ(10個のテーブルをつないだ)から新テーブルを作りたいのですが、検索で調べて、なかなかピタリと説明してくれているサイトが見つかりません。。。 「ユニオンクエリ01」の指定 作成-クエリデザイン、閉じる、テーブルの作成 辺りをいじるんだと思われますが、 どなたか正確にナビして頂けませんでしょうか?
- ベストアンサー
- Access(アクセス)
- ユニオンクエリの結果をテーブルに書き出したい
お世話になります。 Access2000で作成しています。 テーブル作成クエリと同じような形で、 ユニオンクエリの結果をテーブルに書き出したいのですが、 どのようにすればできるでしょうか? SQLの形を直接いじるような方法でも結構ですので 宜しくお願い致します。
- ベストアンサー
- その他(データベース)
- ユニオンクエリについて
複数のファイルにあるテーブルを使って、ユニオンクエリを作りたいと思っています。 他のデータベース内のテーブルを参照して、ユニオンクエリを組めるものでしょうか?やはり同じファイルにあるテーブル同士でなければだめですか? こちら初心者で、聞き方もおかしいかもしれませんが、よろしくお願いいたします。
- ベストアンサー
- その他(データベース)
- Access 2000、ユニオンクエリーがどうしても出来ない!
初歩の質問ですが、ユニオンクエリーが出来ません。 やりたい事は非常に単純です↓↓ 1:テーブル1、テーブル2、テーブル3があります。 2:各テーブルのデータ内容は様々ですが、共通項目として「品番」を持っています。但しテーブル1は「製品名」、テーブル2と3は「品番」という項目名になっています。 3:各テーブル内に、品番が幾つ入っているか、集計クエリでカウントします。項目名が違うので以下のように処理しました。 <テーブル1の場合> フィールド|品番のカウント: 製品名|タイトル: "テーブル1" テーブル |テーブル1 集 計 |カウント <テーブル2(或いは3)の場合> フィールド|品番のカウント: 品番|タイトル: "テーブル2" テーブル |テーブル2 集 計 |カウント 4:3の集計クエリーを繋ぎ、テーブル1~3の品番件数を一気に表示させたい <ユニオンクエリの内容> SELECT * from Q0_カウント_テーブル1 UNION select * from Q0_カウント_テーブル2 UNION select * from Q0_カウント_テーブル3; 5:私の予想としてはこんな風↓↓出てくるはずだったのですが・・・ 品番のカウント| タイトル ------------------------------ 30 | テーブル1 20 | テーブル2 23 | テーブル3 6:結果は「From句の間違いです」と出ます。他の質問も見ましたが、自分のSQLのどこを直せば良いのかわかりません・・・教えてください!
- 締切済み
- オフィス系ソフト
- Accessで複数のテーブルを1つのクエリで表示 UNION?
お世話になります 以前2つのテーブルをひとつにまとめる方法を伝授いただきました下記参考 ■UNIONクエリ select 名前,年 from サンプル1 union all select 名前,年 from サンプル2 http://oshiete1.goo.ne.jp/qa4071630.html しかし2つ以上がうまくいきません 最低5つのテーブルを1つにまとめたいのですが、わかる方ご教授願います
- ベストアンサー
- オフィス系ソフト
- ユニオンクエリをデザインビューで開くには?
アクセス2010です。 T_テーブル1とT_テーブル2があり、 どちらもフィールド1に文字が入っています。(テキスト型です) クエリのSQLビューで SELECT * FROM T_テーブル1 UNION ALL SELECT * FROM T_テーブル2; として保存したらユニオンクエリが出来上がったのですが、 これをクエリのデザインビューで見るにはどうすればいいですか? 以前のバージョンならユニオンクエリをデザインビューで見れました。 でもやり方を忘れました。 該当のクエリをアクティブにしてデザインビューを選択しても SQLビューで開いてしまいます。
- ベストアンサー
- オフィス系ソフト
- ユニオンクエリで開いたクエリは修正することはできないのでしょうか?
ユニオンクエリで開いたクエリは修正することはできないのでしょうか? 新たにクエリ上で作ったフィールドではなく、元々テーブルにあるフィールドの情報を変更したいのですができません。 これを回避する方法はありますか?(アクセス2003です) よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- ACCESS ユニオンクエリはデータ編集ができない
教えてください。初心者なので基本的なことで大変お恥ずかしいのですが・・・。 ACCESSでユニオンクエリを作成し、検索の結果としてフォーム上にデータが閲覧できるシステムを作りました。ユニオンクエリの元となる、テーブルは4つあります。 しかし、フォーム上からも、作成したクエリのデータシートビューからもデータの編集ができません。 クエリというのは、編集ができないという認識でいいのでしょうか。 データを編集するにはテーブルとしてインポートしなおして、作業するしかないのでしょうか? 何か良い方法があれば教えて下さい。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございます。 参考にさせて頂きます。