UPDATE查询根据辅助字段

时间:2016-11-02 05:01:21

标签: mysql sql

我今天改变了我的桌面结构并创建了“国家/地区”。字段/表,我需要执行UPDATE查询以使所有内容符合要求。

我有成千上万的记录。自创建数据库以来,CityID已使用City查找表中的ID填充。 CountryID当前为空新字段。

我已经开始将每个CityID与CountryID相关联。例如,纽约市的CityID =" 25"和USA的CountryID =" 1",所以这些值被输入 City 表。

我想追溯更新Main.CountryID,因此对于Main.CityID =" 25"的任何记录,它应该自动插入Main.CountryID = 1

这有意义吗?

我的主要表:

MainID  
Name  
Address etc.  
CityID
CountryID (Empty)

我的城市

CityID  
City  
CountryID

我的国家/地区

CountryID  
Country

为长期问题道歉,这是漫长的一天......

3 个答案:

答案 0 :(得分:1)

使用Main表进行City表的连接更新:

UPDATE Main a
INNER JOIN City b 
    ON a.CityID = b.CityID
SET a.CountryID = b.CountryID

答案 1 :(得分:1)

当您在City Table中有值时,根据与Cit​​y Table

的连接更新Main table列

试试这个,我希望这很好。

Update t1
   set t1.CountryID = t2.CountryID
   FROM Main AS t1
   INNER JOIN City AS t2 ON t1.CityID = t2.CityID

答案 2 :(得分:0)

试试这个。我已经尝试过了。

UPDATE mainid a JOIN city b
    ON a.cityID = b.cityID
SET a.countryID = b.countryID

好的,我会解释一下。 如果您想获得基于cityID的countryID。您应该将表 MainID 与表 cityID 结合使用,因为在该表中有 cityID和countryID 。因此,请加入mainid a JOIN city b a.cityID = b.cityIDset a.countryID = b.countryID