69

有没有办法插入预设值和我从选择查询中获得的值?例如:

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

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

SELECT idTable2
FROM table2
WHERE ...

这给了我将 ID 放入 table1 中。

如何将其合并到一个语句中?

4

10 回答 10

103

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

insert into table1
select 'A string', 5, idTable2
from table2
where ...
于 2013-03-20T12:34:02.807 回答
88

只需在此处使用子查询,例如:

INSERT INTO table1 VALUES ("A string", 5, (SELECT ...)).
于 2013-03-20T12:34:22.073 回答
18
 
插入表名 1
            (ID,
             姓名,
             地址,
             联系电话)
SELECT id、name、address、contact_number FROM table_name2;   
于 2015-02-16T11:03:16.863 回答
12

试试这个

INSERT INTO TABLE1 (COL1 , COL2,COL3) values
('A STRING' , 5 , (select idTable2 from Table2) )
where ...
于 2013-03-20T13:06:40.800 回答
8

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

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

您可以参考 MySQL 文档:INSERT Syntax

于 2013-03-20T13:37:08.323 回答
2
INSERT INTO table1 
SELECT "A string", 5, idTable2
FROM table2
WHERE ...

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

于 2013-03-20T12:34:46.630 回答
1

尝试以下操作:

INSERT INTO table1 
SELECT 'A string', 5, idTable2 idTable2 FROM table2 WHERE ...
于 2013-03-20T12:33:08.330 回答
1
INSERT INTO table1 (col1, col2)
SELECT "a string", 5, TheNameOfTheFieldInTable2
FROM table2 where ...
于 2013-03-20T12:36:20.437 回答
0

试试这个:

INSERT INTO table1 SELECT "A string", 5, idTable2 FROM table2 WHERE ...
于 2013-03-20T12:34:27.817 回答
0
INSERT INTO table1(Table2Id, KeyTypeEnumId, SortOrder, TenantId)
    SELECT Id, 1, 1, TenantId
    FROM table2
    WHERE WebsitePageTypeEnumId = 10 AND ElementTypeEnumId = 16
于 2021-10-06T13:06:24.940 回答