- ベストアンサー
別テーブルを参照し、その内容を別のテーブルに書き込む
2つのテーブルに存在しているデータを参照し、 取得したデータの結果を3つ目のテーブルに保存する処理をしているのですが // USERのUNIQUEとGAMEのGAME_NOはプライマリーキー select RATE from USER where UNIQUE = xxx select POINT from GAME where GAME_NO = yyy insert into HISTORY set COIN = RATE * POINT 今は一つの保存に対して3つのSQL文を使わなければいけないのですが、 うまいことこの3つのSQL文を一つか二つにつなげるということは出来ないものでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
INSERT INTO `HISTORY` (`COIN`) SELECT `RATE`*`POINT` FROM `USER`,`GAME` WHERE `UNIQUE` = xxx AND `GAME_NO` = yyy という1文でいけると思います
その他の回答 (1)
- dell_OK
- ベストアンサー率13% (766/5720)
回答No.1
ほぼ、そのままを記述する感じです。 insert into HISTORY set COIN = (select RATE * POINT from USER, GAME where USER.UNIQUE =1 and GAME.GAME_NO =1) 抽出する項目が各テーブル1つずつなのと、 出力する項目も1つなので、これだけですが、 項目数が増えてくると、少々面倒になります。
質問者
お礼
確かに項目が増えるとそれだけとんでもなく巨大なソースコードになってしまいますね。 ありがとうございます
お礼
ありがとうございます。 それをベースに作っていったらうまく出来ました。