- ベストアンサー
データベース上の全てのテーブルに対するクエリ
- mySQLでデータベース内の全てのテーブルに対するクエリーに関して質問があります、テーブルの数が数十個ある場合に効果的なクエリ文を知りたい。
- 全てのテーブルに対しweightを検索キーとして該当するレコードのnameをとってくる方法を教えてください。
- テーブル数が数十個ある場合、なるべくunionなどを使わずにクエリ文を書く方法はありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>>簡単にでもどういうふうに書けるか例を示していただけるとありがたいのですが。。。 んー。 じゃあこのあたりで。。。? http://www.dbonline.jp/mysql/view/ http://dev.mysql.com/doc/refman/5.1/ja/create-view.html 作成したビューの中で、unionですべてくっつけておいてやれば、 そのビューに対してselectかけるだけで、全テーブルに対してselectを行ったことと一緒。に出来るようになりますね。 あんまりにもややこしいビューを作ろうとすると制約に引っかかったりとかしますが、今回のような内容ならば問題ないでしょう。
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
>「ichinensei」というデータベースにテーブル「1_kumi」「2_kumi」「3_kumi」 ichinenseiというテーブルにkumiというカラムをつくって1,2,3といれる ようなデータ管理をしないと効率的に処理はできないと思いますが・・・ >テーブルの数分クエリ文を書くというのは避けたい これだけが目的なら、ビューをつかうとか
お礼
確かにデータ管理の方法が効率的ではないですね。質問させていただいたような方法が可能であれば現状のデータベースで簡単に処理できると思っていたのですが。。。 ビューというのは恥ずかしながら知りませんでした。調べてみます。 ありがとうございました。
- STICKY2006
- ベストアンサー率29% (1536/5269)
こんちは。 >>(全てのテーブル)に対する検索を1文で済ます方法が分かりません。 無理じゃない? ストアド(MySQLだと、JOB。でしたっけ?)で、DB内のテーブル情報取得して、 それ元にして、まわしてデータ拾ってくる。 ぐらいなら考えられますが。。。 一文はちょっと。。。 >>なるべくunionなどを使ってテーブルの数分クエリ文を書くというのは避けたいと考えています。 この条件。。。ってことは、テーブル数自体は頻繁に変更されるものではない。 と思いますが、どうでしょう? それならば、ややこしい(であろう)クエリ文を叩きまくるよりは、ビューでも作ってunionでくっつけておいた方が分かりやすいんじゃないかなぁ。と。 実際のクエリ文叩くときは、ビュー参照するだけですし、一文。になりますし。 (以降はビューの構成更新するだけ。ですし。 後は。。。 自分も、他の方の意見を見てみたいと思います^^;
補足
>この条件。。。ってことは、テーブル数自体は頻繁に変更されるものではない。 >と思いますが、どうでしょう? はい。おっしゃるとおりテーブル数は普段変えません。 >それならば、ややこしい(であろう)クエリ文を叩きまくるより >は、ビューでも作ってunionでくっつけておいた方が分かり >やすいんじゃないかなぁ。と。 >実際のクエリ文叩くときは、ビュー参照するだけですし、 >一文。になりますし。 ビューというものをこれまで知らなかったので、調べてみようと思います。簡単にでもどういうふうに書けるか例を示していただけるとありがたいのですが。。。
お礼
大変参考になりました。ありがとうございました。