有表myTable
id fid bid  name
1  1    1   张三
2  1    1   李四
3  3    3   王五
现在要更新上面的表
更新 “name=王五”的记录 将其fid=1,同时更新该记录的bid。bid的值需要查这张表中fid=1时bid的值
简单来说就是update后面set关键 from XXXupdate myTable set fid=1,bid=myTable.bid from myTable  where name='王五'我这样写是错的,很费解,求高手

解决方案 »

  1.   


    update myTable set fid=1,bid=(select top 1 bid from myTable where fid=1) from myTable  where name='王五' 
      

  2.   

    fid=1时bid的值--这个值如果有多个如何处理?
      

  3.   

    如果fid=1时bid的值只有一个
    update a 
    set a.fid=1,a.bid=b.bid 
    from myTable a,
    (select bid from myTable where fid=1) b  
    where a.name='王五'