2012-11-07 125 views
0

我有一個商務中心列表。有時數據輸入人員並不具備所有信息,例如缺少城市名稱,但其餘信息已完成。我有另一張郵編表。我希望能夠爲那些沒有城市的地址做一個郵政編碼查詢,並獲得城市名稱。我在MySQL中這樣做。如何讓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表城市名稱並在中心表中更新 缺失的城市名稱。我很感謝幫助,謝謝!

+1

你錯過了'。'您的第一行中心和城市之間 – burmat

回答

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

嘗試重寫您的更新語句如下:

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

0

給這個射門:

UPDATE centers SET city = (
SELECT primary_city 
FROM zipcode_types 
WHERE zipcode=city.zip) 
WHERE city IS null 
OR city =='''; 
相關問題