update users
set count=b.times
from users a
left join (
select uid,count(*) as times from contact group by uid)b
on a.uid=b.uid

解决方案 »

  1.   

    update users
    set count=b.times
    from users a
    inner join (
    select uid,count(*) as times from contact group by uid)b
    on a.uid=b.uid
      

  2.   

    这个count不用写在users表中,放心地删除它就是了。
      

  3.   

    update users
    set A.count=B.tt 
    from users A
    inner join (
    select uid,count(uid) as tt from contact group by uid) B on A.uid=B.uid
      

  4.   

    --方法一
    update users set [count]=(select count(*) from contact where users.uid=uid)
    --方法二
    update users set [count]=b.cn from users a join (select uid,cn=count(*) from contact group by uid) b on a.uid=b.uid
      

  5.   

    update users  set  count=a.count  from users  inner join 
    (select uid,count=count(uid)  from contact  group by uid) a
    on users.uid=a.uid  where  name='张三'