人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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一つで解決できるスマートな方法を学習の意味も込めて探しております。宜しくお願い致します。

●質問者: happy1980
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● きゃづみぃ
●100ポイント ベストアンサー

一つの例として

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

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


happy1980さんのコメント
こんな簡単な方法で良かったのですね!目から鱗です。ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ