2015-02-24 83 views
0

我有2個表格:customers(customer,city_name,postal_code)和postal_codes(city_name,postal_code)。從另一個表格的數據更新表

在客戶表中,郵政編碼條目丟失,但城市在那裏。

如何更新postal_codes表中的customers表,以便在缺少postal_code的customers表中更新丟失的postal_code?

這可能是重複的,但我無法使任何來自類似線程的建議工作。他們都使用某種縮寫來表格名稱,我覺得很難遵循。

試過,但它似乎不工作:

UPDATE customers 
SET  postal_code = postal_codes.postal_code 
FROM postal_codes.postal_code INNER JOIN postal_codes.city_name ON customers.city_name 

回答

0

至於我記得SQLite不支持update ... from join語法,但此查詢應該爲你工作:

UPDATE customers 
SET postal_code = (
    SELECT postal_codes.postal_code 
    FROM postal_codes 
    WHERE postal_codes.city_name = customers.city_name 
) 
WHERE EXISTS (
    SELECT * 
    FROM postal_codes 
    WHERE postal_codes.city_name = customers.city_name 
    AND postal_codes.postal_code <> customers.postal_code 
); 
+0

它確實不工作....它執行但不更新。 – user3927897 2015-02-24 15:55:45

+0

@ user3927897 AFAIK此語法應與SQLite一起使用;嘗試在結尾處刪除'AND postal_codes.postal_code <> customers.postal_code',看看它是否能夠正常工作。 – jpw 2015-02-24 16:00:29

+0

@ user3927897你確定剩下的約1700行的表格之間有city_names匹配嗎? – jpw 2015-02-24 16:21:42

相關問題