我正在尝试通过运行以下查询来更新表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。因此,我假设错误位于左联接内。
答案 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'