我有一份商务中心清单。有时,数据输入人员没有所有信息,例如缺少城市名称,但其余信息已完成。我有另一个zipcodes表。我希望能够为那些没有城市的地址进行邮政编码查找,并获取城市名称。我在MySQL中这样做。
我很难获得正确的MySQL。我不知道这是一个语法问题还是MySQL的逻辑是错误的。这就是我所拥有的:
update centers city
set centers.city = (
select zipcode_types.primary_city
from centers, zipcode_types
where centers.city="" and centers.zipcode=zip);
这是我从上面的MySQL中得到的错误:
ERROR 1093 (HY000): You can't specify target table 'city' for update in FROM clause
我正在尝试做的是从zipcode_types表中找到城市名称并更新 中心表中缺少城市名称。感谢您的帮助,谢谢!
答案 0 :(得分:1)
您可以使用多表update syntax:
update centers
inner join zipcode_types on zipcode_types.zip = centers.zipcode
set centers.city = zipcode_types.primary_city
where centers.city='';
答案 1 :(得分:1)
尝试按如下方式重写更新语句:
update centers set city=(select zipcode_types.primary_city from zipcode_types where enters.zipcode=zipcode_types.zip)
where centers.city=''
在此SQL小提琴页面上显示:http://sqlfiddle.com/#!2/3f7b5/1
答案 2 :(得分:0)
试一试:
UPDATE centers SET city = (
SELECT primary_city
FROM zipcode_types
WHERE zipcode=city.zip)
WHERE city IS null
OR city ==''';