update CUSTOMER_TRANSACTION a set CUSTOMER_ID= ( select CUSTOMER.CUSTOMER_ID
from CUSTOMER b where a.CUSTOMER_NAME=b.NAME)
where exists (select 1 from CUSTOMER c where a.CUSTOMER_NAME=c.NAME);

解决方案 »

  1.   

    update CUSTOMER_TRANSACTION set CUSTOMER_ID=select CUSTOMER.CUSTOMER_ID from CUSTOMER where CUSTOMER_TRANSACTION.CUSTOMER_NAME=CUSTOMER.NAME
      

  2.   

    update CUSTOMER_TRANSACTION set CUSTOMER_ID=(select DISTINCT CUSTOMER_ID from CUSTOMER
    where CUSTOMER.NAME=CUSTOMER_TRANSACTION.CUSTOMER_NAME)对每一个CUSTOMER.NAME,select出来的id必须只有一个值,否则会出错
      

  3.   

    to:Lastdrop(空杯) 
    最后一句:
    where exists (select 1 from CUSTOMER c where a.CUSTOMER_NAME=c.NAME);
    能起作用吗?
    当c表中找不到 a.CUSTOMER_NAME,那怎么update?
      

  4.   

    lastdrop的不会出任何错误,如果词表中找不到a.customer_name,就不更新了。或者你可以:
    case when exists (select 1 from CUSTOMER c where a.CUSTOMER_NAME=c.NAME)
         then update CUSTOMER_TRANSACTION a set CUSTOMER_ID= ( select     CUSTOMER.CUSTOMER_ID from CUSTOMER b where a.CUSTOMER_NAME=b.NAME)
    else
         处理语句
    end
      

  5.   

    update CUSTOMER_TRANSACTION set CUSTOMER_ID=(select CUSTOMER.CUSTOMER_ID from CUSTOMER where CUSTOMER_TRANSACTION.CUSTOMER_NAME=CUSTOMER.NAME)
    注意:CUSTOMER_TRANSACTION.CUSTOMER_NAME=CUSTOMER.NAME必需唯一