表中的SQL更新值

时间:2019-01-28 13:03:52

标签: sql select sql-update

我正为一些简单东西而苦苦挣扎。

目前我有2张桌子(tmp_jmo和个人)

table tmp_jmo
----------
ID     ADRESS     PERSON_ID
115    Street 1   (null)
120    Street 2   (null)
121    Street 3   (null)

Table persons
ID    NAME      PERSON_ID
----------
115    John       14
120    Ellen      27
121    Mark       114

现在我想用Peson_id(人员表)中的值更新tmp_jmo中的person_id

在这种情况下,我得到了很多值错误

Update tmp_jmo t SET person_id = persons.person_id where tmp_jmo.id = persons.id;

我也尝试使用临时数据,但是也失败了。

很抱歉打扰您这种问题,但这却毁了我的一天!

非常感谢!

1 个答案:

答案 0 :(得分:2)

在标准SQL中,您可以执行以下操作:

update tmp_jmo t 
    set person_id = (select p.person_id from persons p where tmp_jmo.id = p.id);

许多数据库在join s中还支持fromupdate,但这是特定于数据库的语法。