与INNER JOIN一起使用UPDATE时的语法错误(缺少运算符)

时间:2013-07-01 09:48:41

标签: sql ms-access

我正在尝试在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 Access驱动程序]

     

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

我没有看到需要任何操作符的位置,因为我不使用任何括号或引号。

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

我做错了什么?

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,在寻找答案时发现了这个问题。幸运的是,当我在工作中浏览一些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子句。

答案 1 :(得分:-1)

FROM上使用INNER JOIN时,您需要UPDATE条款:

UPDATE WW_B
SET WW_B.WWtype_ID = 1
FROM WW_B
INNER JOIN New_data
  on WW_B.StdNr = New_data.StdNr

答案 2 :(得分:-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