补充一下,刚刚截图说错了,小李哪里的Fid修改后应该是3不是2

解决方案 »

  1.   


    UPDATE a SET Fid=b.id
    FROM #ta2 a
    JOIN #ta1 b ON a.Ftx=b.tx
      

  2.   

    update a set fid=b.id
    from #ta2 a
    ,#ta1 b where a.ftx=b.tx
      

  3.   

    好多人不知道update 后面还可以写join。
      

  4.   


    create table #ta1(id int ,tx varchar(20))
    go
    insert into #ta1
    select 1,'小明' union all
    select 2,'小红' union all
    select 3,'小李' 
    go
    create table #ta2(id int,Ftx varchar(20),Fid int)
    go
    insert into #ta2
    select 1,'小明',0 union all
    select 2,'小明',0 union all
    select 3,'小李',0 union all
    select 4,'小李',0 union all
    select 5,'小军',0 union all
    select 6,'小军',0 
    update #ta2
    set Fid = t1.id
    from #ta2 t2
    inner join #ta1 t1
            on t2.Ftx = t1.tx
    select * 
    from #ta2
    /*
    id Ftx Fid
    1 小明 1
    2 小明 1
    3 小李 3
    4 小李 3
    5 小军 0
    6 小军 0
    */