求写一条查询语句
有两个表a { UserId int, Messageid int }用户所创建的信息
b{MessageId}转发的信息
查询别人转发了该用户总共多少条信息
[解决办法]
select a.userid,count(*) as cnt --转发条数from a join b on a.messageid = b.messageidgroup by a.userid
[解决办法]
select a.他转发别人的条数, b.别人转发的条数from (select messageid,count(1) as 他转发别人的条数 group by messageid)a left join (select messageid,count(1) as 别人转发的条数 group by messageid)bon a.messageid = b.messageid
[解决办法]
-- 查询有多少人转发了他的信息(查人数 同一个人转发了多次只能算一个人)select count(distinct b.UserId) s1from ainner join b on a.Messageid=b.Messageidwhere a.UserId=[指定的ID]-- 查询他转发了多少个人的信息(查人数 同一个人转发了多次只能算一个人)select count(distinct a.UserId) s2from binner join a on b.Messageid=a.Messageidwhere b.UserId=[指定的ID]
[解决办法]
-- 查询a表中前10条,别人没有转发过的信息select top 10 a.*from aleft join b on a.Messageid=b.Messageidwhere b.Messageid is null