使用Mysql中的另一个表替换一个表的数据

时间:2016-05-28 11:41:07

标签: mysql database

我有两张表如下。

表:城市


city_id  city_name   state_id
  1       Cachar       1
  2       Darrang      1
  3       Nicobar      1 

表2:地点


pincode  Address       city
110020   loni          Nicobar
110021   debru         Cachar
110024   rogar         Cachar
110023   akura         Nicobar

在表城市,我有1430行,包含印度的不同城市。 在表格位置,每个城市包含大约100个密码。

我想做什么? : 我想替换表中的每个城市(列):locality及其对应的city_id in table:city。

问题:我该怎么做?这有什么快捷的方法吗?我不想使用任何编程语言,即php或java。是否有任何程序,在Mysql中循环?

结果应如下所示:

表2:地点


pincode  Address       city
110020   loni            3
110021   debru           1
110024   rogar           1
110023   akura           3

2 个答案:

答案 0 :(得分:0)

您可以按照以下步骤操作:

  • 在整数类型的位置表中添加临时列。

    ALTER TABLE locality ADD temp_column INT;

  • 运行以下查询以更新相应的城市ID 位置表。

    UPDATE locality INNER JOIN city ON city.city_name = locality.city SET locality.temp_column = city.city_id;

  • 将列城市放在位置表中。

    ALTER TABLE locality DROP COLUMN city;

  • 现在将临时列的列重命名为“city”

    ALTER TABLE locality CHANGE COLUMN temp_column city INT(11) NOT NULL;

答案 1 :(得分:0)

你可以试试这个。

UPDATE locality JOIN city ON locality.City = city.city_name SET locality.City = city.city_id