将数据从SQL Server表导入另一个表
我无法正确获取此SQL语句。我想将band电子邮件选择到另一个表中,但我不明白我做错了什么:将数据从SQL Server表导入另一个表,sql,sql-server,Sql,Sql Server,我无法正确获取此SQL语句。我想将band电子邮件选择到另一个表中,但我不明白我做错了什么: INSERT INTO submitted (mail) SELECT submitted.bandid, band.mail, band.id FROM band WHERE submitted.bandid = band.id 有人能帮我吗?试试看,您已经指定了1列要插入,但是您的SELEC
INSERT INTO submitted (mail)
SELECT
submitted.bandid,
band.mail,
band.id
FROM
band
WHERE
submitted.bandid = band.id
有人能帮我吗?试试看,您已经指定了1列要插入,但是您的SELECT查询包含3列,而且您的查询中的表没有联接:
INSERT INTO submitted (mail)
SELECT
band.mail
FROM band
INNER JOIN submitted ON submitted.bandid = band.id
尝试此操作,您已指定要插入的1列,但您的SELECT查询包含3列,并且您的查询中的表未联接:
INSERT INTO submitted (mail)
SELECT
band.mail
FROM band
INNER JOIN submitted ON submitted.bandid = band.id
您没有提到收到的错误消息,但我怀疑问题在于,在语句的
INSERT
部分中只指定了一列,而SELECT
部分返回了许多列
有一个很好的示例说明了如何构造此查询:
仅将一个表中的某些列复制到另一个表中:
INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;
您没有提到收到的错误消息,但我怀疑问题在于,在语句的
INSERT
部分中只指定了一列,而SELECT
部分返回了许多列
有一个很好的示例说明了如何构造此查询:
仅将一个表中的某些列复制到另一个表中:
INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;
我怀疑您想要的是
更新
,而不是插入
:
UPDATE s
SET mail = b.mail
FROM submitted s JOIN
band b
ON s.bandid = b.id;
insert
在表中插入新行<代码>更新更新现有行中的列。我怀疑您想要的是更新
,而不是插入
:
UPDATE s
SET mail = b.mail
FROM submitted s JOIN
band b
ON s.bandid = b.id;
insert
在表中插入新行update
更新现有行中的列。您是说只想在新表中的一列(mail
)中插入—但您从原始表中选择了三列—这行不通。在目标表中定义要插入这些值的三列,或者只选择一列,实际用于从源表中插入数据,您说只想插入一列(mail
)在新表中,但您正在从原始表中选择三列,这将不起作用。在目标表中定义要插入这些值的三列,或者只选择要实际用于从源表插入数据的一列