0

我目前有两张桌子。他们都有一个 account_number 的主键

purchase_email(this_record、account_number、econtact_address)

PURCHASE-LEDGER(this_record、e_mail、account_number)

目前 purchase_email 包含我希望转移到当前为空的 e_mail 字段中的购买分类帐表中的所有电子邮件地址。下面是我认为正确的查询,但是每次我运行它时都会出现一个窗口,该窗口是“purchase_email.econtact_address 的输入参数值以及 purchase-ledger.email 的另一个窗口。我很困惑它为什么这样做并且已经尝试了许多不同的查询,但仍然没有失败。有人可以帮忙吗?

INSERT INTO [purchase-ledger] ( e_mail )
SELECT econtact_address
FROM purchase_email
WHERE purchase-ledger.account_number=purchase_email.account_number;
4

2 回答 2

0

如果这是实际代码,而不是拼写错误,则需要在 WHERE 子句中将表名括起来,因为名称中有破折号。你有:

INSERT INTO [purchase-ledger] ( e_mail )
SELECT econtact_address
FROM purchase_email
WHERE purchase-ledger.account_number=purchase_email.account_number;

你需要:

INSERT INTO [purchase-ledger] ( e_mail )
SELECT econtact_address
FROM purchase_email
WHERE [purchase-ledger].account_number=purchase_email.account_number;
于 2013-08-15T13:03:08.283 回答
0

您需要使用 UPDATE 语句,而不是INSERT

UPDATE  [purchase-ledger] 
        INNER JOIN purchase_email
            ON purchase_email.Account_number = [purchase-ledger].Account_number
SET     e_mail = purchase_email.econtact_address;
于 2013-08-15T10:43:16.967 回答