将SQL Server表中的数据导入到另一个表中

问题描述:

我无法获得此SQL语句的权利。我想选择带电子邮件到另一个表,但我不明白我在做什么错:将SQL Server表中的数据导入到另一个表中

INSERT INTO submitted (mail) 
    SELECT 
     submitted.bandid, 
     band.mail, 
     band.id 
    FROM 
     band 
    WHERE 
     submitted.bandid = band.id 

任何人都可以帮助我吗?

+0

你在说你想在新表中插入一列('mail') - 但是你从原始表中选择了**三列 - 这是行不通的。 **或者**定义要将这些值插入到目标表中的**三列**,或者**只需选择要实际用于从源插入数据的** one **列表 –

试试这个,你必须指定1列插入到,但你的SELECT查询中包含3列,也表中您没有加入:

INSERT INTO submitted (mail) 
SELECT 
band.mail 
FROM band 
INNER JOIN submitted ON submitted.bandid = band.id 

你没有提到你的错误消息”重新获得,但我怀疑问题是您只在该语句的INSERT部分指定了一列,但SELECT部分返回了很多列。

This w3schools page有此查询应该如何构建一个很好的例子:

仅复制某些列从一个表到另一个表:

INSERT INTO table2 (column1, column2, column3, ...) 
SELECT column1, column2, column3, ... 
FROM table1 
WHERE condition; 

我怀疑你想update,不insert

UPDATE s 
    SET mail = b.mail 
    FROM submitted s JOIN 
     band b 
     ON s.bandid = b.id; 

insert将新的插入表中。 update更新现有的行中的列。