• ベストアンサー

access2007同一構造のテーブルを結合

複数の同一構造のテーブルを結合したいのですが、、、 下記サイトを見てユニオンクエリーとやらを使うまでは理解しましたが、 http://www.serpress.co.jp/access/no005.html 細部が理解できません。SQL文が理解できません。。。 ●テーブル1=saitama、テーブル2=chiba、テーブル3=tokyo、テーブル4=kanagawa ●フィールド内容=会社名/郵便番号/住所/電話番号/FAX/業種 と言う内容ならば、どの様なSQL文?を書けば良いのでしょうか?

  • e-na
  • お礼率60% (102/169)

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

【要旨】 以下のSQLで、目的に適うかと思います: Select * From saitama Union Select * From chiba Union Select * From tokyo Union Select * From kanagawa; 【詳細】 > 複数の同一構造のテーブルを結合したいのですが、、、 詳細は以前のQ&Aを参考下さい: http://okwave.jp/qa/q4835740.html 構造が完全に同一なら、以下のSQL文でOkです: (「テーブル1=saitama」の意味が、「1つ目のテーブルの名前がsaitama」だとして) Select saitama.* From saitama Union Select chiba.* From chiba Union Select tokyo.* From tokyo Union Select kanagawa.* From kanagawa; もしくは、上記の「saitama.*」の「saitama.」(ピリオドまで)は省略可能なので、 Select * From saitama Union Select * From chiba Union Select * From tokyo Union Select * From kanagawa; と簡略化することもできます。 また、元となったテーブルを別のフィールドに表示させたい場合は以下となります: (「""」で括った「"saitama"」等の部分は、「"埼玉"」等としてもOk) Select *, "saitama" As 由来 From saitama Union Select *, "chiba" As 由来 From chiba Union Select *, "tokyo" As 由来 From tokyo Union Select *, "kanagawa" As 由来 From kanagawa; なお、必要なフィールドだけを取り出す場合は、 Select 会社名, 郵便番号, 住所, 電話番号, FAX, 業種 From saitama Union Select 会社名, 郵便番号, 住所, 電話番号, FAX, 業種 From chiba Union Select 会社名, 郵便番号, 住所, 電話番号, FAX, 業種 From tokyo Union Select 会社名, 郵便番号, 住所, 電話番号, FAX, 業種 From kanagawa; と、必要なフィールド名を「,」(カンマ)区切りで指定してやればOkです。

e-na
質問者

お礼

ご丁寧な解説いただき、勉強になりました。 ありがとうございました。

関連するQ&A

  • テーブルを結合して新規にテーブルに・・・

    アクセス2003でSQLを組んでデータベースを作っています。 まず、ユニオンクエリを使ってAクエリとBクエリを結合しました。 この結合したものを新規にテーブルを作成したいのですが、どうすれば良いでしょうか? 手順を教えて頂ければ幸いです。 よろしくお願いします。

  • Accessのクエリ(テーブルの結合)

    Accessのクエリで以下のようなものを作成したいのですが、SQL文がわかりません。 ↓ tblA,tblB,tblC はそれぞれ同じ項目(AAA,Cnt(AAAの値別カウント数)、日付)を持っています。 tblA,tblB,tblC を全部結合して、日付、AAAでグルーピングしたカウントを取りたいのですが、 どのようなクエリ文になるのでしょうか? また、Oracleでいうunion all関数はないのですか? よろしくお願いします。

  • ACCESSのテーブル結合に関して

    初歩的な事で申し訳ありませんが、教えて下さい。 以下のように3つのテーブルが存在し、検索条件をBテーブルの仕入先コードが"AAA"と 指定した際に、 発注番号、発注日付、仕入先コード、仕入先名 という形でOUTPUTしようと考えています。 その場合、クエリではどのように結合すれば良いでしょうか。。。 Aテーブルの発注番号とBテーブルの発注番号、Bテーブルの仕入先コードとCテーブルの 仕入先名という結合の形では、条件の"AAA"が1件しかないにもかかわらず、複数件出力されて しまうかと思われます。 《テーブル内容》 Aテーブル 発注番号 発注日付 Bテーブル 発注番号 仕入先コード Cテーブル 仕入先コード 仕入先名 ※ Bテーブル、Cテーブルの仕入先コード"AAA"は、それぞれ1件ずつしかない。 教えて頂きたいと思います。

  • テーブルを結合する構文はUNIONやJOINがありますが

    テーブルを結合する構文はUNIONやJOINがありますが この場合クエリー速度は1本のテーブルと複数のテーブルではどの程度 違うのでしょうか? また物理的に複数のテーブルを1つにしたい場合に何かいい方法は ないでしょうか。

    • ベストアンサー
    • MySQL
  • Accessで複数(3以上)のテーブルを一気に結合する方法

    Accessで、列の項目が全く同一の、複数(3つ以上)のテーブル(例えばA、B、C)を一気に単純結合する方法を教えて下さい。ユニオンクエリの構文でも結構です。よろしくお願いします。

  • Accessで多くのExcelファイルをリンクしてテーブルを作ろうとするととエラーが出ます

    Access2007で、複数のExcelファイルをリンクテーブルとして参照し、 UNIONで結合して1つのテーブルにまとめ、様々な処理をしています。 リンクするExcelファイルの数がだんだん増えてきて、 50個になったところでエラーが出るようになりました。 ユニオンクエリは正常に開くことができるのですが、 テーブル作成クエリで「クエリが複雑すぎます」と表示され、 テーブルが作成できません。 ユニオンクエリでは全てのリンクテーブルをUNIONで繋いでいます。 テーブル作成クエリはユニオンクエリをSELECT...INTOでテーブルにしているだけです。 参照するExcelファイルは今後も増えていって最終的には120個くらいまで 増やるかもしれないということで、 どうしていいかわからず困っています。 何かいい方法をご存知の方、教えていただけないでしょうか。

  • ユニオンクエリで繋げられるテーブル(クエリ)の上限の個数は?

    access2003です。 ユニオンクエリで繋げられるテーブル(クエリ)の上限の個数はいくつなんでしょうか? またSQL文は1024文字越すとエラーになるのでしょうか? よろしくお願い致します。

  • MySQL テーブルの結合

    顧客ごとにテーブルを作る香ばしいプログラムのSQL文を書くことになりました。 user_0001 user_0002 user_0003 user_0004 user_0005 といった具合にどんどん増えていきます。 カラムは仮に id, name, tel が入っているとします。 プログラムの修正は行えません。 通常JOIN句でテーブルの結合を行うと思うのですが、「user_」という文字列を含んでいるテーブルを全て結合せよ!みたいな命令文はSQLで書けるのでしょうか? 無理、無駄、素直にプログラムで出せ、というアドバイスでも構いませんのでよろしくお願いします。

    • ベストアンサー
    • MySQL
  • データ型の変更

    アクセス2003を使っています。 ユニオンクエリを使って複数のクエリを結合しました。 その後、SQLで結合したクエリをテーブルにする為、 SELECT Qユニオンクエリ.* INTO T統合 FROM Qユニオンクエリ; という、SQLを使ってテーブルにしました。 できあがったテーブルのデータ型が希望通りになっていないので、 データ型を変更して、常にそのデータ型で処理したいので保存しておきたいと思います。 しかし、データを入れる度に、前述のユニオンクエリを使い、再びそのクエリをテーブルにするという処理を行います。 その際にデータ型がまた変わってしまいます。 対処方法はあるでしょうか? よろしくお願いします。

  • Accessの内部結合

    こんにちは。 Accessでcateテーブルとgoodsテーブルがあります。 select * from goods inner join cate on goods.cateid = cate.id; クエリデザインで、テーブルとテーブルを結合して上記のようなSQLができました。 これは動作することを確認しました。 SQLビューで下記のようなSQLを書きました。 select * from goods inner join cate on left(goods.cateid,5) = cate.id; しかしながら、動きませんでした。 VBAを使わずに、Accessの標準のクエリデザインから上記のようなSQLを実行させることは可能でしょうか? クエリデザインでselect left(cateid,5) as cateid from goodsというTESTクエリをつくり、TESTクエリとcateテーブルとジョインさせれば解決しそうなことはわかるのですが・・・ 宜しくお願いします。

専門家に質問してみよう