2016-07-05 17 views
-2

私はselect into into mysqlを実行しようとしています。 このようなデータを挿入することはできますか?それを行うための他の方法がありますか?select into into selectを実行する方法

A = 17

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT (Y,Z) FROM TABLE2 
    WHERE CONDITION, A 

おかげで、クエリのルックスから

+5

3列、2つの値をそれを得ます。どうしてうまくいかないのですか? –

+0

Table1 3列(x1、x2、x3)、Table2のデータ挿入(Y、Z)、A = 7 – Gaetan

答えて

0

は、選択なステートメントから

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT (Y,Z,17) FROM TABLE2 
    WHERE CONDITION; 
+0

@Gaetanこれを確認してください –

0

あなたが列でAを挿入するように、それが見えます。あなたのクエリは次のようになります。

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT Y,Z,A FROM TABLE2 
    WHERE CONDITION 

またはあなたは即座にそれが整数だと仮定して、直接Aの値を挿入することができます。

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT Y,Z,17 FROM TABLE2 
    WHERE CONDITION 
0

もっと意味が分からない場合はINSERT ... SELECT Syntaxをご覧ください。

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT Y,Z,A FROM TABLE2 
    WHERE A = 17 

時々、あなたはまた、あなたは列のいくつかの値を上書きするような状況で次のように使用などを失敗ユニークな制約があるかもしれない他の(すなわち17)ハードコードされた内容を挿入したいです。

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT Y,Z,17 FROM TABLE2 
0

これはたぶん、このような何かを

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT Y,Z,17 FROM TABLE2 
    WHERE CONDITION 
0

を動作するはず?

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT (X,Y,Z) FROM TABLE2 
    WHERE A = 17