如何修复更新查询中的语法错误(缺少运算符)

时间:2019-07-09 16:11:15

标签: sql ms-access jet

我正在尝试通过运行以下查询来更新表progress_report,但是当我运行它时,会得到以下信息:查询表达式中的语法错误(缺少运算符)

我尝试了不同的代码变体,但下面的变体与我认为的一样正确。

UPDATE progress_report AS per  
INNER JOIN cs_t AS cs ON per.person_id = cs.person_id
LEFT JOIN is_t AS ifaf ON cs.inst_id = ifaf.is_id
SET per.verif_status = cs.verif_status,
per.inst_id = cs.inst_id,
per.inst_type = ifaf.is_type
WHERE cs.yr = '2018'

查询在没有左联接的情况下运行良好,但是我需要联接is_t表以填充per.inst_type。因此,我假设错误位于左联接内。

1 个答案:

答案 0 :(得分:1)

与其他dbms不同,访问在连接时具有特殊的语法。
在另一个联接开始之前,需要用括号将每个联接括起来:

UPDATE (progress_report AS per  
INNER JOIN cs_t AS cs ON per.person_id = cs.person_id)
LEFT JOIN is_t AS ifaf ON cs.inst_id = ifaf.is_id
SET per.verif_status = cs.verif_status,
per.inst_id = cs.inst_id,
per.inst_type = ifaf.is_type
WHERE cs.yr = '2018'