select *,(select count(1) from msgs where userid=users.userid) as 数量
from 
users

解决方案 »

  1.   

    select users.userid,users.username,users.msgcount
    from msgs left outer join users
    on msgs.userid=users.userid
      

  2.   

    update users
    set msgcount=(select d.msg_count 
                    from
                      (
                        select c.userid,c.username,count(c.title) as msg_count
                          from
                            (
                              select a.userid,a.username,b.title,b.content
                                from users a inner join msgs b on a.userid=b.userid 
                             ) as c
                         group by c.userid,c.username
                       )as d 
                    where users.userid=d.userid
                  )
      

  3.   

    不好意思,'inner join' 应该为'left outer join'.
      

  4.   

    update users set msgcount=um.cnt
    from (select count(userid) as cnt ,u.userid from users u inner join msgs m on u.userid=m.userid group by u.userid) um inner join users u um.userid=u.userid
      

  5.   

    update users  set msgcount=(select count(1) from msgs where users.userid = msgs.userid)
      

  6.   

    select (selet count(userid) from msgs) as msgcount from users