MySQL INSERT INTO ... VALUES和SELECT

时间:2013-03-20 12:29:52

标签: mysql sql select insert

有没有办法插入我从select-query中获得的预设值和值? 例如:

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

我有“A string”的值和数字5,但是我要从这样的选择中找到[int]值:

SELECT idTable2
FROM table2
WHERE ...

给我这个id放在table1中。

如何将此合并为一个语句?

9 个答案:

答案 0 :(得分:76)

使用insert ... select查询,并将已知值放入select

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

答案 1 :(得分:59)

只需在那里使用子查询:

INSERT INTO table1 VALUES ("A string", 5, (SELECT ...)).

答案 2 :(得分:11)

 
INSERT INTO table_name1
            (id,
             name,
             address,
             contact_number) 
SELECT id, name, address, contact_number FROM table_name2;   

答案 3 :(得分:10)

试试这个

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

答案 4 :(得分:6)

所有其他答案解决了问题,我的答案与其他答案的工作方式相同,但只是采用更多的教学方式(这适用于MySQL ......不知道其他SQL服务器):

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

您可以参考MySQL文档:INSERT Syntax

答案 5 :(得分:2)

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

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

答案 6 :(得分:1)

尝试以下方法:

INSERT INTO table1 
SELECT 'A string', 5, idTable2 idTable2 FROM table2 WHERE ...

答案 7 :(得分:1)

INSERT INTO table1 (col1, col2)
SELECT "a string", 5, TheNameOfTheFieldInTable2
FROM table2 where ...

答案 8 :(得分:0)

试试这个:

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