MySQLについて質問です。


以下はごく一般的な「SELECTした結果をINSERTする」構文です。
INSERT INTO TableA (A, B, C, D )
SELECT TableB.A, TableB.B, TableB.C, TableB.D,
FROM TableB
WHERE TableB.A = 1

私が行いたいのはSELECTした結果に固定値を含めてINSERTできないかということです。例えばSELECTした結果のCの全てに、固定値として3を入れたり、関数Now()を入れたりしたいのです。

仮想テーブルみたいなのを作りJOINすればよいのか?、あるいはVALUESみたいなものと組み合わせれば?と考えましたが、未習熟で解決できませんでした。

INSERT INTO TableA (A, B, C, D)
SELECT TableB.A, TableB.B, TableC.FixC, TableC.FixD,
FROM TableB RIGHT JOIN (

一時テーブルみたいなもの [ ex) FixC = 3, FixD = Now() ]

) AS TableC ON TableB.A = TableC.A
WHERE TableB.A = 1

INSERT後にUPDATEをすればよいという事はNGです。あくまでもSQL一つで解決できるスマートな方法を学習の意味も込めて探しております。宜しくお願い致します。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/03/31 20:03:09
  • 終了:2012/03/31 20:42:41

ベストアンサー

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982012/03/31 20:25:58

ポイント100pt

一つの例として

INSERT INTO TableA (A, B, C, D, E )
SELECT TableB.A, TableB.B, TableB.C, TableB.D,3
FROM TableB
WHERE TableB.A = 1

みたいにすればいいですよ。

id:happy1980

こんな簡単な方法で良かったのですね!目から鱗です。ありがとうございました。

2012/03/31 20:42:31

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません