有没有办法插入我从select-query中获得的预设值和值? 例如:
INSERT INTO table1 VALUES ("A string", 5, [int]).
我有“A string”的值和数字5,但是我要从这样的选择中找到[int]值:
SELECT idTable2
FROM table2
WHERE ...
给我这个id放在table1中。
如何将此合并为一个语句?
答案 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 ...