web-dev-qa-db-ja.com

MySQL INSERT INTO ... VALUESおよびSELECT

事前設定された値とselect-queryから取得した値を挿入する方法はありますか?例えば:

INSERT INTO table1 VALUES ("A string", 5, [int]).

「A string」という値と5という数値がありますが、次のようなselectから[int]値を見つける必要があります。

SELECT idTable2
FROM table2
WHERE ...

これにより、そのidがtable1内に配置されます。

これを1つのステートメントにマージする方法は?

50
TheEnigmist

insert ... selectクエリを使用し、既知の値をselectに入れます。

insert into table1
select 'A string', 5, idTable2
from table2
where ...
77
Guffa

次のようなサブクエリを使用します。

INSERT INTO table1 VALUES ("A string", 5, (SELECT ...)).
62
zoujyjs
 
 INSERT INTO table_name1 
(id、
 name、
 address、
 contact_number)
 SELECT id、name、address、contact_number FROM table_name2; 
11
Mahbub Tito

これを試して

INSERT INTO TABLE1 (COL1 , COL2,COL3) values
('A STRING' , 5 , (select idTable2 from Table2) )
where ...
10
echo_Me

他のすべての答えは問題を解決し、私の答えは他の答えと同じように機能しますが、より教訓的にだけです(これはMySQLで動作します...他のSQLサーバーを知らない):

INSERT INTO table1 SET 
  stringColumn  = 'A String', 
  numericColumn = 5, 
  selectColumn  = (SELECT idTable2 FROM table2 WHERE ...);

MySQLのドキュメントを参照できます。 INSERT構文

7
Felypp Oliveira
INSERT INTO table1 
SELECT "A string", 5, idTable2
FROM table2
WHERE ...

参照: http://dev.mysql.com/doc/refman/5.6/en/insert-select.html

2
Jono Guthrie

以下を試してください:

INSERT INTO table1 
SELECT 'A string', 5, idTable2 idTable2 FROM table2 WHERE ...
1
Korhan Ozturk
INSERT INTO table1 (col1, col2)
SELECT "a string", 5, TheNameOfTheFieldInTable2
FROM table2 where ...
1
Laurent S.

これを試して:

INSERT INTO table1 SELECT "A string", 5, idTable2 FROM table2 WHERE ...
0
neelsg