3

我正在尝试在 MS Access DB 上执行此 SQL 查询:

UPDATE WW_B
SET WW_B.WWtype_ID=1 
INNER JOIN New_data
  ON WW_B.StdNr = New_data.StdNr;

但我收到以下错误:

[Microsoft][ODBC Microsoft 访问驱动程序]

表达式中的语法错误(缺少运算符)1 INNER JOIN New_data on WW_B.StdNr = New_data.StdNr

我看不到哪里需要任何运算符,因为我不使用任何括号或引号。

我也尝试过WWtype_ID='1'并且WWtype_ID="1"得到了同样的错误。

我究竟做错了什么?

4

3 回答 3

3

我遇到了同样的问题,在寻找答案时发现了这个问题。幸运的是,我在工作中挖掘了一些 Access 查询时找到了解决方案。

这只是 MS Access 不能很好地使用标准 SQL 语法的另一种情况。

其他答案不正确。您不需要 FROM 子句,Access 只会给您相同的错误消息。遇到错误的地方是放置 JOIN 的地方。FROM...JOIN... 看起来很直观,但这是 MS Access,使用 SQL 从来都不是直观的。

在 Access 中,UPDATE 似乎取代了 FROM。因此,您将 JOIN 语句添加到 UPDATE 子句的末尾。

UPDATE WW_B
INNER JOIN New_data
  ON WW_B.StdNr = New_data.StdNr
SET WW_B.WWtype_ID=1;

如果需要,您还可以在 SET 语句之后添加 WHERE 子句。

于 2018-07-03T21:30:43.287 回答
-1

FROM使用INNER JOINon an时需要一个子句UPDATE

UPDATE WW_B
SET WW_B.WWtype_ID = 1
FROM WW_B
INNER JOIN New_data
  on WW_B.StdNr = New_data.StdNr
于 2013-07-01T09:52:13.013 回答
-1

你错过了FROM条款

UPDATE WW_B SET WW_B.WWtype_ID=1 FROM <your table> INNER JOIN New_data on WW_B.StdNr = New_data.StdNr
于 2013-07-01T09:52:37.683 回答