怎样用另一张表update一张表?举例来说:
有两张表:t1和t2现在要update表t1t1 结构name   id
张三   123
李四   456
t2 结构name
张三
王五现在要把表t1中的id 改为 999 ,条件是t1表的name字段出现表t2中的name字段里

解决方案 »

  1.   

    UPDATE T1 SET ID=999
    WHERE EXISTS (SELECT ID FROM T1 WHERE T1.NAME IN (SELECT NAME FROM T2) )
      

  2.   

    update t1 set id = 999 where name in (select name from t2)
      

  3.   

    update t1 set id = 999 where name in (select name from t2);
      

  4.   

    update t1 set t1.id = 999 where t1.name in (select t2.name from t1, t2 where t1.name = t2.name)
      

  5.   

    update t1 set id = 999 where exists (select 1 from t2 where t1.name = t2.name)
      

  6.   

    exists应该比in快吧 给分吧。。
      

  7.   

     update t1 t set t.id=999 where  exists(select * from t2 a where t.name=a.name); 
      

  8.   

    用MERGE吧。sql:    
                  MERGE INTO t1  a
                  using (select * from t2) b
                  on (a.name = b.name)  
                  when matched then
                  update set a.id =b.id;
                    
       
      

  9.   

    ORACLE写法都有人给了
    我给你个SQL SERVER 的写法
    update t1 set id=999 from t1 t, t2 ,tt where t.name = tt.name