我如何编写更新 SQL 从一个 table 复制多条记录以更新另一个 table 上的相应字段?

How do I write an Update SQL to copy multiple records from one table to update the corresponding field on another table?

我想 select 一个字段中由外键分组的所有记录,并更新另一个 table 由外键分组的相应字段。两个table之间的外键不同,互不相关

理想情况下,我希望 table 从状态 A 变为状态 B

状态A

tbl_Unlisted                   tbl_Listed
ListID      ListDate           ListID      ListDate
  43       04/01/2018            64
  43       04/02/2018            64
  43       04/03/2018            64
  43       04/04/2018            64

状态B

tbl_Unlisted                   tbl_Listed
ListID      ListDate           ListID      ListDate
  43       04/01/2018            64       04/01/2018
  43       04/02/2018            64       04/02/2018
  43       04/03/2018            64       04/03/2018
  43       04/04/2018            64       04/04/2018

这是我对更新的尝试 SQL:

UPDATE tbl_Listed
SET ListDate = tbl_Unlisted.ListDate
FROM tbl_Unlisted
WHERE tbl_List.ListID = 64
AND tbl_Unlisted.ListID = 43;

tbl_Listed是我要更新的table
tbl_Unlisted 是包含现有记录的 table
ListDate 是我要从 tbl_Unlisted 复制并更新到 tbl_Listed
的字段 ListID 是包含 tbl_Listed 和 tbl_Unlisted

的外键的字段

但是,当我尝试执行更新 SQL 时抛出语法错误。

知道我应该改变什么吗?提前致谢!

EDIT - Updated from comments

我应该澄清一下,每个 table 上都有另一个字段,每个记录都是唯一的,因此第 #1 行 = A,第 #2 行 = B,第 #3 行 = C,第 4 行 = D

您应该利用 SQL 查询设计模式轻松创建此查询

如果您要使用 VBA - 我建议对不同的 ListID 进行参数化查询

如果匹配行的 FieldName 名为 "ROW"

,这将起作用
UPDATE tbl_Listed 
INNER JOIN tbl_Unlisted 
ON tbl_Listed.Row = tbl_Unlisted.Row 
SET tbl_Listed.ListDate = [tbl_Listed].[ListDate]
WHERE (((tbl_Listed.ListDate) Is Null) 
AND ((tbl_Listed.ListID)=64) 
AND ((tbl_Unlisted.ListID)=43));