首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求写一条查询语句,该如何解决

2012-03-16 
求写一条查询语句有两个表a {UserId int,Messageid int }用户所创建的信息b{MessageId}转发的信息查询别人

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


[解决办法]

SQL code
select a.userid,count(*) as cnt --转发条数from a join b on a.messageid = b.messageidgroup by a.userid
[解决办法]
SQL code
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
[解决办法]
SQL code
-- 查询有多少人转发了他的信息(查人数 同一个人转发了多次只能算一个人)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]
[解决办法]
SQL code
-- 查询a表中前10条,别人没有转发过的信息select top 10 a.*from aleft join b on a.Messageid=b.Messageidwhere b.Messageid is null 

热点排行