我有一个表(custTAB)缺少一些邮政编码,但是有城市和州的名称。我有一个zipTAB有一个城市,州和邮政编码。我的目的是把丢失的邮政编码从zipTAB复制到custTAB。但是,由于某些原因,我的更新无法按预期工作。如果有10K个空的cust_zips,更新后我会得到20K个空的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
                  );

谢谢。
注:行号经过编辑,便于阅读。

最佳答案

你能试试这个吗?您需要将两个表连接起来:

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

10-08 04:42