将数据从SQL Server表导入另一个表

时间:2017-08-07 09:37:39

标签: sql sql-server

我无法正确获取此SQL语句。我想在另一张桌子上选择乐队电子邮件,但我不明白我做错了什么:

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

有人能帮助我吗?

3 个答案:

答案 0 :(得分:2)

试试这个,你已经为INSERT INTO指定了1列,但是你的SELECT查询包含3列,你们的表中也没有加入:

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

答案 1 :(得分:1)

您还没有提到您收到的错误消息,但我怀疑问题是您只在声明的INSERT部分指定了一列,但是{{1 part返回许多列。

This w3schools page有一个关于如何构建此查询的一个很好的示例:

  

仅将一个表中的某些列复制到另一个表中:

SELECT

答案 2 :(得分:0)

我怀疑你想要update,而不是insert

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

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