• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データベース上の全てのテーブルに対するクエリ)

データベース上の全てのテーブルに対するクエリ

このQ&Aのポイント
  • mySQLでデータベース内の全てのテーブルに対するクエリーに関して質問があります、テーブルの数が数十個ある場合に効果的なクエリ文を知りたい。
  • 全てのテーブルに対しweightを検索キーとして該当するレコードのnameをとってくる方法を教えてください。
  • テーブル数が数十個ある場合、なるべくunionなどを使わずにクエリ文を書く方法はありますか?

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

  • ベストアンサー
  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.3

>>簡単にでもどういうふうに書けるか例を示していただけるとありがたいのですが。。。 んー。 じゃあこのあたりで。。。? http://www.dbonline.jp/mysql/view/ http://dev.mysql.com/doc/refman/5.1/ja/create-view.html 作成したビューの中で、unionですべてくっつけておいてやれば、 そのビューに対してselectかけるだけで、全テーブルに対してselectを行ったことと一緒。に出来るようになりますね。 あんまりにもややこしいビューを作ろうとすると制約に引っかかったりとかしますが、今回のような内容ならば問題ないでしょう。

hydrozoa
質問者

お礼

大変参考になりました。ありがとうございました。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>「ichinensei」というデータベースにテーブル「1_kumi」「2_kumi」「3_kumi」 ichinenseiというテーブルにkumiというカラムをつくって1,2,3といれる ようなデータ管理をしないと効率的に処理はできないと思いますが・・・ >テーブルの数分クエリ文を書くというのは避けたい これだけが目的なら、ビューをつかうとか

hydrozoa
質問者

お礼

確かにデータ管理の方法が効率的ではないですね。質問させていただいたような方法が可能であれば現状のデータベースで簡単に処理できると思っていたのですが。。。 ビューというのは恥ずかしながら知りませんでした。調べてみます。 ありがとうございました。

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

こんちは。 >>(全てのテーブル)に対する検索を1文で済ます方法が分かりません。 無理じゃない? ストアド(MySQLだと、JOB。でしたっけ?)で、DB内のテーブル情報取得して、 それ元にして、まわしてデータ拾ってくる。 ぐらいなら考えられますが。。。 一文はちょっと。。。 >>なるべくunionなどを使ってテーブルの数分クエリ文を書くというのは避けたいと考えています。 この条件。。。ってことは、テーブル数自体は頻繁に変更されるものではない。 と思いますが、どうでしょう? それならば、ややこしい(であろう)クエリ文を叩きまくるよりは、ビューでも作ってunionでくっつけておいた方が分かりやすいんじゃないかなぁ。と。 実際のクエリ文叩くときは、ビュー参照するだけですし、一文。になりますし。 (以降はビューの構成更新するだけ。ですし。 後は。。。 自分も、他の方の意見を見てみたいと思います^^;

hydrozoa
質問者

補足

>この条件。。。ってことは、テーブル数自体は頻繁に変更されるものではない。 >と思いますが、どうでしょう? はい。おっしゃるとおりテーブル数は普段変えません。 >それならば、ややこしい(であろう)クエリ文を叩きまくるより >は、ビューでも作ってunionでくっつけておいた方が分かり >やすいんじゃないかなぁ。と。 >実際のクエリ文叩くときは、ビュー参照するだけですし、 >一文。になりますし。 ビューというものをこれまで知らなかったので、調べてみようと思います。簡単にでもどういうふうに書けるか例を示していただけるとありがたいのですが。。。

関連するQ&A