2012-07-30 19 views
2

我有有一些拉鍊代碼丟失,但有城市狀態名稱的表(custTAB)。我有一個zipTAB它有一個城市,狀態郵政編碼代碼。我的意圖是將zipTAB中缺失的郵政編碼複製到custTAB。但是,出於某種原因,我的更新無法按預期工作。如果有10K NULL cust_zips,更新後我得到20K NULL cust_zips。有人可以檢查發生了什麼? )更新命令失敗。有人可以檢查我的查詢嗎?

update custTAB 
    set cust_zip = (select zip 
        from zipTAB 
        where custTAB.cust_zip is null and 
          custTAB.cust_city = zipTAB.city and 
          custTAB.cust_state = zipTAB.state 
        limit 1 
       ); 

謝謝。 PS:編輯行號以便於閱讀。

回答

4

你可以試試這個嗎?您需要加入這兩個表格:

UPDATE custTab a INNER JOIN zipTab b ON 
     a.cust_city = b.city AND 
     a.cust_state = b.state 
SET a.cust_zip = b.zip 
WHERE a.cust_zip IS NULL 
+0

非常感謝,我可以看到更改的行數大約是預期值。如果你有時間,你能解釋我的查詢出了什麼問題,以及你爲什麼工作? – SEU 2012-07-30 07:30:52