有两个表a {  UserId int,  Messageid int }用户所创建的信息
b{MessageId}转发的信息
查询别人转发了该用户总共多少条信息

解决方案 »

  1.   


    select a.userid,count(*) as cnt --转发条数
    from a join b on a.messageid = b.messageid
    group by a.userid
      

  2.   


    --也可以
    select a.userid,count(*) as cnt --转发条数
    from a left join b on a.messageid = b.messageid
    group by a.userid
      

  3.   

    select count(*)
    from b join  a on a .Messageid =t. Messageid 
    where userid=用户id
      

  4.   

    有两个表a { UserId int, Messageid int }用户所创建的信息
    b{UserId int,MessageId int}别人转发的信息
    查询有多少人转发了他的信息(查人数)
    查询他转发了多少个人的信息
      

  5.   

    select
     a.他转发别人的条数,
     b.别人转发的条数
    from
     (select messageid,count(1) as 他转发别人的条数 group by messageid)a 
    left join
     (select messageid,count(1) as 别人转发的条数 group by messageid)b
    on
     a.messageid = b.messageid
      

  6.   

    不对哦有两个表
    a { UserId int 创建者ID, Messageid int }用户所创建的信息
    b{UserId int 转发者ID,MessageId int}转发的信息记录表
    查询有多少人转发了他的信息(查人数 同一个人转发了多次只能算一个人)
    查询他转发了多少个人的信息(查人数 同一个人转发了多次只能算一个人)
      

  7.   


    -- 查询有多少人转发了他的信息(查人数 同一个人转发了多次只能算一个人)
    select count(distinct b.UserId) s1
    from a
    inner join b on a.Messageid=b.Messageid
    where a.UserId=[指定的ID]-- 查询他转发了多少个人的信息(查人数 同一个人转发了多次只能算一个人)
    select count(distinct a.UserId) s2
    from b
    inner join a on b.Messageid=a.Messageid
    where b.UserId=[指定的ID]
      

  8.   


    有两个表
    a { UserId int 创建者ID, Messageid int }用户所创建的信息
    b{UserId int 转发者ID,MessageId int}转发的信息记录表
    查询a表中前10条,别人没有转发过的信息
      

  9.   

    有两个表
    a { UserId int 创建者ID, Messageid int }用户所创建的信息
    b{UserId int 转发者ID,MessageId int}转发的信息记录表
    查询a表中前10条,别人没有转发过的信息 
    select top 10 Messageid into #a from aselect * from #a where Messageid not in(
    select distinct Messageid from b where Messageid in(select Messageid from #a))
      

  10.   


    -- 查询a表中前10条,别人没有转发过的信息
    select top 10 a.*
    from a
    left join b on a.Messageid=b.Messageid
    where b.Messageid is null