重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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文を一つか二つにつなげるということは出来ないものでしょうか?

A 回答 (2件)

INSERT INTO `HISTORY` (`COIN`)


SELECT `RATE`*`POINT` FROM `USER`,`GAME` WHERE `UNIQUE` = xxx AND `GAME_NO` = yyy

という1文でいけると思います
    • good
    • 0
この回答へのお礼

ありがとうございます。
それをベースに作っていったらうまく出来ました。

お礼日時:2009/10/15 21:19

ほぼ、そのままを記述する感じです。



insert into HISTORY set
COIN = (select RATE * POINT
from USER, GAME
where USER.UNIQUE =1
and GAME.GAME_NO =1)

抽出する項目が各テーブル1つずつなのと、
出力する項目も1つなので、これだけですが、
項目数が増えてくると、少々面倒になります。
    • good
    • 0
この回答へのお礼

確かに項目が増えるとそれだけとんでもなく巨大なソースコードになってしまいますね。
ありがとうございます

お礼日時:2009/10/15 21:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!