mySQLでデータベース内の全てのテーブルに対するクエリーに関して質問があります(mySQL 5.5)。
仮に 「ichinensei」というデータベースにテーブル「1_kumi」「2_kumi」「3_kumi」 .....と複数のテーブルがあるとします。
テーブルは全て同じデータ形式で仮に
name (char) | weight (int)
という名前と体重の情報が登録されているとします。
やりたいことは全てのテーブルに対しweightを検索キーとして該当するレコードのnameをとってくる、という操作です。
weight(体重)が41,42,43,50,51であるレコードの名前を列挙するためには
SELECT name FROM (全てのテーブル) WHERE weight IN (41,42,43,50,51)
上記のようなクエリ文が考えられますが(全てのテーブル)に対する検索を1文で済ます方法が分かりません。
実際の作業ではテーブル数が数十個なのでなるべくunionなどを使ってテーブルの数分クエリ文を書くというのは避けたいと考えています。
このような場合どのようなクエリ文が使えるのでしょうか?
No.3ベストアンサー
- 回答日時:
>>簡単にでもどういうふうに書けるか例を示していただけるとありがたいのですが。
。。んー。
じゃあこのあたりで。。。?
http://www.dbonline.jp/mysql/view/
http://dev.mysql.com/doc/refman/5.1/ja/create-vi …
作成したビューの中で、unionですべてくっつけておいてやれば、
そのビューに対してselectかけるだけで、全テーブルに対してselectを行ったことと一緒。に出来るようになりますね。
あんまりにもややこしいビューを作ろうとすると制約に引っかかったりとかしますが、今回のような内容ならば問題ないでしょう。
No.2
- 回答日時:
>「ichinensei」というデータベースにテーブル「1_kumi」「2_kumi」「3_kumi」
ichinenseiというテーブルにkumiというカラムをつくって1,2,3といれる
ようなデータ管理をしないと効率的に処理はできないと思いますが・・・
>テーブルの数分クエリ文を書くというのは避けたい
これだけが目的なら、ビューをつかうとか
確かにデータ管理の方法が効率的ではないですね。質問させていただいたような方法が可能であれば現状のデータベースで簡単に処理できると思っていたのですが。。。
ビューというのは恥ずかしながら知りませんでした。調べてみます。
ありがとうございました。
No.1
- 回答日時:
こんちは。
>>(全てのテーブル)に対する検索を1文で済ます方法が分かりません。
無理じゃない?
ストアド(MySQLだと、JOB。でしたっけ?)で、DB内のテーブル情報取得して、
それ元にして、まわしてデータ拾ってくる。
ぐらいなら考えられますが。。。
一文はちょっと。。。
>>なるべくunionなどを使ってテーブルの数分クエリ文を書くというのは避けたいと考えています。
この条件。。。ってことは、テーブル数自体は頻繁に変更されるものではない。
と思いますが、どうでしょう?
それならば、ややこしい(であろう)クエリ文を叩きまくるよりは、ビューでも作ってunionでくっつけておいた方が分かりやすいんじゃないかなぁ。と。
実際のクエリ文叩くときは、ビュー参照するだけですし、一文。になりますし。
(以降はビューの構成更新するだけ。ですし。
後は。。。
自分も、他の方の意見を見てみたいと思います^^;
この回答への補足
>この条件。。。ってことは、テーブル数自体は頻繁に変更されるものではない。
>と思いますが、どうでしょう?
はい。おっしゃるとおりテーブル数は普段変えません。
>それならば、ややこしい(であろう)クエリ文を叩きまくるより
>は、ビューでも作ってunionでくっつけておいた方が分かり
>やすいんじゃないかなぁ。と。
>実際のクエリ文叩くときは、ビュー参照するだけですし、
>一文。になりますし。
ビューというものをこれまで知らなかったので、調べてみようと思います。簡単にでもどういうふうに書けるか例を示していただけるとありがたいのですが。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
今度同じサークルだった女の子...
-
このテーブルで
-
会社の飲み会の幹事になり、座...
-
まるいテーブル 円い 丸い 漢字...
-
外部キーだけのテーブル(主キ...
-
特定物と不代替物の違い
-
DBの容量について
-
面接のときテーブルが正面に。...
-
男性と2人で飲食店に行きテーブ...
-
お金持ちのテーブル
-
Access 振込手数料計算
-
飲み会で、座敷orテーブルどち...
-
風水で丸いテーブルはあまりよ...
-
オーダーの覚え方について
-
ファイルメーカー起動時の設定
-
人の前を通る場合について
-
クエリを教えてください select...
-
SQL 外部結合
-
L2SWはARPテーブルを持っている?
-
ACCESSで3ファイルを結合して、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
L2SWはARPテーブルを持っている?
-
テーブルリンク リンク元を知...
-
会社の飲み会の幹事になり、座...
-
外部キーだけのテーブル(主キ...
-
飲み会で、座敷orテーブルどち...
-
アクセスのリンクテーブル一覧...
-
複数テーブルにわたるCOUNT
-
男性と2人で飲食店に行きテーブ...
-
「テーブルに座って……」という...
-
複雑なSQL文について
-
まるいテーブル 円い 丸い 漢字...
-
お金持ちのテーブル
-
【PHP】SQL文のSUM関数で出力し...
-
論理名とコメント構文(?)について
-
1つのテーブルに同じデータを参...
-
1対1のリレーション(主キー同...
-
MySQLで複数テーブルを作成する
-
テーブルの白く剥がれてるところに
-
オーダーの覚え方について
-
このテーブルで
おすすめ情報