我想选择一个字段中由外键组合在一起的所有记录,并更新另一个按外键分组的表中的相应字段。两个表之间的外键不同,彼此无关。
理想情况下,我希望表格从状态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是我要更新的表格
tbl_Unlisted是包含现有记录的表
ListDate是我想要从tbl_Unlisted复制并更新为tbl_Listed
的字段
ListID是包含tbl_Listed和tbl_Unlisted
但是,当我尝试执行它时,Update SQL会引发语法错误。
我应该改变什么?提前谢谢!
编辑 - 从评论更新
我应该澄清每个表上还有另一个字段对于每个记录都是唯一的,因此第1行= A,第2行= B,第3行= C,第4行= D < / em>
答案 0 :(得分:2)
您应该利用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));