将SQL Server表中的数据导入到另一个表中
问题描述:
我无法获得此SQL语句的权利。我想选择带电子邮件到另一个表,但我不明白我在做什么错:将SQL Server表中的数据导入到另一个表中
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
答
你没有提到你的错误消息”重新获得,但我怀疑问题是您只在该语句的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
更新现有的行中的列。
你在说你想在新表中插入一列('mail') - 但是你从原始表中选择了**三列 - 这是行不通的。 **或者**定义要将这些值插入到目标表中的**三列**,或者**只需选择要实际用于从源插入数据的** one **列表 –