我无法正确获取此SQL语句。我想在另一张桌子上选择乐队电子邮件,但我不明白我做错了什么:
INSERT INTO submitted (mail)
SELECT
submitted.bandid,
band.mail,
band.id
FROM
band
WHERE
submitted.bandid = band.id
有人能帮助我吗?
答案 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
更新现有行中的列。