如何 SQL 为另一个表中的每个 id 插入一条记录? [复制]

Posted

技术标签:

【中文标题】如何 SQL 为另一个表中的每个 id 插入一条记录? [复制]【英文标题】:How can I SQL insert a record for every id in another table? [duplicate] 【发布时间】:2016-12-26 13:05:35 【问题描述】:

我已经看到了插入选择,但我只想从第二个表中获取一个值。这是我的想法:

insert into table1
Values((select distinct id from table2),
"blah", "blah", "blah")

所以在 Id 之后,其余的值将被硬编码为我想要的任何值。这可能吗?

【问题讨论】:

【参考方案1】:

语法如下:

insert into table1
select distinct id, 'blah', 'blah', 'blah' from table2

对字符串文字使用单引号,例如'blah'。 (双引号用于分隔标识符,例如,如果一个对象有一个保留字作为名称 "table"。)

【讨论】:

【参考方案2】:

正确的语法不使用values:

insert into table1(col1, . . . )
    select distinct id, 'blah', 'blah', 'blah'
    from table2;

注意事项:

在使用 insert 时,您应该始终使用明确的列列表,除非您真的非常清楚自己在做什么。 使用单引号来分隔字符串,而不是双引号。

【讨论】:

哇,这么简单,我心疼 @Pittfall 。 . .当你学到一些东西时,永远不要感到难过。 . .至少在没有其他人受伤的情况下。

以上是关于如何 SQL 为另一个表中的每个 id 插入一条记录? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Sql 查询为表中的每个组合返回一条记录

两个表,一个表中的两列关联另一个表的id,如何将这个表中的两列显示为另一个表id对应的内容

MySQL:如何在 SQL 查询中为每个结果插入一条记录?

求高手给写一条SQL语句,返回两个表中的两条数据之差

在 SQL Server 2005 中将列标识上的标识设置为另一个表的列

如何在表中插入变量(@id)作为 SQL 服务器查询中的自动增量?