SQL 根据 ID 匹配从一个表更新到另一个表
我有一个包含 帐号
和 卡号
的数据库.我将这些匹配到一个文件以 update
任何卡号到帐号,因此我只使用帐号.
I have a database with account numbers
and card numbers
. I match these to a file to update
any card numbers to the account number, so that I am only working with account numbers.
我创建了一个将表链接到帐户/卡数据库的视图以返回 表 ID
和相关的帐号,现在我需要更新 ID 与帐号匹配的那些记录.
I created a view linking the table to the account/card database to return the Table ID
and the related account number, and now I need to update those records where the ID matches with the Account Number.
这是Sales_Import
表,其中account number
字段需要更新:
This is the Sales_Import
table, where the account number
field needs to be updated:
LeadID AccountNumber
147 5807811235
150 5807811326
185 7006100100007267039
这是 RetrieveAccountNumber
表,我需要从中更新:
And this is the RetrieveAccountNumber
table, where I need to update from:
LeadID AccountNumber
147 7006100100007266957
150 7006100100007267039
我尝试了以下方法,但到目前为止没有运气:
I tried the below, but no luck so far:
UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID =
RetrieveAccountNumber.LeadID)
它将卡号更新为帐号,但帐号被替换为 NULL
It updates the card numbers to account numbers, but the account numbers gets replaced by NULL
推荐答案
我相信带有 JOIN
的 UPDATE FROM
会有所帮助:
I believe an UPDATE FROM
with a JOIN
will help:
UPDATE
Sales_Import
SET
Sales_Import.AccountNumber = RAN.AccountNumber
FROM
Sales_Import SI
INNER JOIN
RetrieveAccountNumber RAN
ON
SI.LeadID = RAN.LeadID;
MySQL 和 MariaDB
UPDATE
Sales_Import SI,
RetrieveAccountNumber RAN
SET
SI.AccountNumber = RAN.AccountNumber
WHERE
SI.LeadID = RAN.LeadID;
相关文章