テーブルのなかから一定の条件で抽出したテーブルを作成する処理についてお聞きできればと思っております。
mysqlでのmargeについては複数のテーブルを1つにマージすることができることはわかったのですが、マージではなくて、特定のテーブルからデータをselectして別の仮想の論理テーブルを作成して、そちらの論理テーブルをもとにデータの読み書きを行うような方法はあるのでしょうか?
(PHPでselectすればいいだけなのですが、書き換え箇所が多数にのぼるため、できればPHPのソースの書き換えをテーブル名の変更だけですますことが出来ればと思いまして。)
答え:
MySQLも5.0からはVIEWが使えます。「論理テーブル」ってことでは
一番近いものでしょう。
それ以前のバージョンであればTEMPORARY TABLEを使うってぐらいでしょうか。ただそれでは選択は出来ても反映はできません。
補足の質問:
大変ありがとうございます。本などを見てもわかりませんでした。おかげで開発工数を大幅に減らすことができます。
他の御回答いただいた方々もありがとうございました。参考にさせていただきます。この質問・回答は役に立ちましたか?
答え:
SELECT-INSERTはいかがでしょうか。ただし、あらかじめ仮想テーブルをCREATEする必要があります。
元テーブルと、仮想テーブルのカラム構成が同じでしたら、
INSERT INTO 仮想テーブル SELECT * FROM 元テーブル WHERE 元テーブルからの抽出条件;
カラム構成が違う場合は、指定してあげてください。
INSERT INTO 仮想テーブル(カラム1, カラム2) SELECT カラム1, カラム2 FROM 元テーブル WHERE 元テーブルからの抽出条件;
他は答える:
select * into newtable from oldtable where xxxxxxxx
では?
直接指定したテーブルを作って、データを放り込む。
ウェブサイトのユーザーによる情報ポスト、JPQA.comのない保証の正しさ.