【问题标题】:How to fix syntax error in update query (missing operator)如何修复更新查询中的语法错误(缺少运算符)
【发布时间】:2019-07-09 16:11:15
【问题描述】:

我正在尝试通过运行以下查询来更新表 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。所以我假设错误在于左连接。

【问题讨论】:

  • 您可能会发现this post 有助于理解在 MS Access SQL 中需要括号包围连接的位置。

标签: sql ms-access jet


【解决方案1】:

Access 在连接方面有一种特殊的语法,这与其他 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' 

【讨论】:

    猜你喜欢
    • 2018-09-07
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    相关资源
    最近更新 更多