MySQL Workbench - 使用 WHERE 子句的 UPDATE 语句

MySQL Workbench - UPDATE statement using WHERE clause

我正在尝试更新一个名为 'Rural' - 列名 'NO2' 的 table,使用来自另一个名为 'new_no2' - 列名的 table 的数据'NO2'。看下面的代码

update Rural
set Rural.NO2 = new_no2.NO2
where Rural.Year = new_no2.Year
and Rural.Site = new_no2.Site;

但是,我一直收到错误代码:1054。'Where clause'

中的未知列 'new_no2.Year'

我浏览了很多教程并尝试了很多东西,例如确保 table 名称正确等等,但由于某种原因,它不起作用。

如果有人能澄清我可能做错了什么,那就太好了。

顺便说一下,我正在使用 MySQL workbench MacBook 版本 8

谢谢 布鲁诺

使用子查询:

update Rural set
Rural.NO2 = coalesce((
    select new_no2.NO2
    from new_no2
    where Rural.Year = new_no2.Year
    and Rural.Site = new_no2.Site), no2)

live demo

如果在new_no2中找不到相应的值,则使用coalesce()保留no2不变。