MYSQL更新加入声明

时间:2014-05-11 13:58:58

标签: mysql

更新:我在导入时犯了一个错误。公司的所有“建筑”字段都有一个额外的问号。不知道这是怎么发生的。无论如何,这已经解决了。

一个新手问题,(是的,我已经尝试了数小时和数小时才能做到这一点)

我正在尝试用两个表更新数据库。

表格与此类似。

latlon3:

  id building roadno block  lat2   lon2
   1  1331     5943    3    35.55  54.55

公司:

  id building roadno block latitude longitude
   1  1331     5843    3     empty    empty

确定。所以我需要从latlon3表中更新公司表,如果所有三个条件都为真(这是必须的)。建筑,道路,和街区。这就是我到目前为止所做的:

 UPDATE companies t
 JOIN latlon3 a USING (Building, RoadNo, Block)
 SET t.latitude = a.lat2, t.longitude = a.lon2
 WHERE t.latitude = '' AND t.longitude = ''

它始终显示受影响的零行。这是我的问题。表公司不会使用latlon3表中相应的纬度和经度字段进行更新。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

试试这个,

 UPDATE companies t
 JOIN latlon3 a ON a.building=t.building AND a.roadno=t.roadno AND a.block=t.block  SET t.latitude = a.lat2, t.longitude = a.lon2
 WHERE t.latitude = '' AND t.longitude = ''

答案 1 :(得分:1)

两个表中的roadno值不同。如何在此字段中使用USING,元组之间没有关系,因此返回0 rows affected。我添加了id支票

尝试:

UPDATE companies t
 JOIN latlon3 a ON a.id=t.id SET t.latitude = a.lat2, t.longitude = a.lon2
 WHERE t.latitude = '' AND t.longitude = ''