update from子句的问题
update   t1    
    set   (Col1)   =   (   select   Col1      from   t2 
                                                                                     where   t1.Col_Primary   =   t2.Col_Primary   );     
 这样把t1中有的,t2中没有的记录的Col1设成   NULL了?
------解决方案--------------------SQL>  SELECT * FROM T1;   
       COL1 CNAME 
 ---------- ------------------------------ 
          1 A 
          2 B 
          3 C   
 Executed in 0.157 seconds   
 SQL>  SELECT * FROM T2;   
       COL1 CNAME 
 ---------- ------------------------------ 
          2 B 
          3 c 
          4 d   
 Executed in 0.14 seconds 
 SQL>  update t1 
   2   set (CNAME) = ( select CNAME  from t2 
   3                              where t1.COL1 = t2.COL1);   
 3 rows updated   
 Executed in 0.141 seconds   
 SQL>  SELECT * FROM T1;   
       COL1 CNAME 
 ---------- ------------------------------ 
          1  
          2 B 
          3 c   
 Executed in 0.156 seconds     
 SQL>  update t1 
   2   set (CNAME) = ( select CNAME  from t2 
   3                              where t2.COL1 = t1.COL1) 
   4   WHERE 
   5   EXISTS( 
   6     SELECT 1 FROM T2 WHERE t1.COL1 = t2.COL1 
   7   ) ;   
 2 rows updated   
 Executed in 0.172 seconds   
 SQL>  SELECT * FROM T1;   
       COL1 CNAME 
 ---------- ------------------------------ 
          1 A 
          2 B 
          3 c   
 Executed in 0.171 seconds     
 这样真是很麻烦,期待高人指点   
------解决方案--------------------是要加exists   
 如果数据量大的话 
 update很花时间