【发布时间】:2015-10-26 09:40:20
【问题描述】:
我需要创建一个查询来更新表中的列,其中的值取自另一个表并匹配一个字段。
这是两张表:
tblMain
ID Autonumbering
Key Text
Stat1 Integer
tblStat1
ID Autonumbering
Key Text
Freq Integer
我想更新tblMain.Stat1 列,在其中tblMain.Key = tblStat1.Key 的每条记录上使用tblStat1.Freq 值。
我试过这个语法(在某处找到的例子)
UPDATE tblMain
SET tblMain.Stat1 = tblStat1.Freq
WHERE tblMain.Key = tblStat1.Key;
这不起作用并在第二行返回错误。
经过一些试验,我发现正确的语法(使用 Access 查询生成器构建)是这样的:
UPDATE (tblMaibn INNER JOIN tblStat1 ON tblMain.Key = tblStat1.Key)
SET tblMain.Stat1 = tblStat1.Freq;
在第二种语法中,没有 WHERE 条件的痕迹。 有人可以帮我理解第一种语法有什么问题。 由于我正在构建一个新表(连接),它如何在 tblMain 上工作? 正如我所说,我发现错误的语法作为 UPDATE 语句的示例。
提前谢谢你。 再见, 伊万诺
【问题讨论】:
-
A
join不会构建新表。它描述了两个表/子查询之间的特定操作。
标签: sql sql-update ms-access-2010