使用SqlServer多表连接查询,两种方法查询得出的结果为什么不一样,如题,谢谢指导~
[local]2[/local]QQMaster数据库案例——3个表分别为QQUser记录QQ用户登录信息,BaseInfo记录QQ用户的基本信息,relation记录QQ用户的好友及黑名单信息
relation表中——用户关系:0表示用户relationQQID是用户QQID的好友,1表示用户relationQQID是用户QQID的黑名单
目的:/* 查询QQ号码为54789625的用户的好友中每个省份的总人数,并且总人数按由大到小排序 */
方法一(嵌套方法):select Province,count(*) from BaseInfo where QQID in (select RelationQQID from relation where QQID=54789625 and relationStatus=0) group by Province order by count(*) desc
查询结果:
北京市 6
江苏省 6
湖南省 4
山西省 2
陕西省 1
天津省 1
浙江省 1
广西省 1
贵州省 1
河南省 1
黑龙江省 1
安徽省 1
澳门 1
北京 1
方法二(内联接方法,):select Province,count(*) from BaseInfo join relation on BaseInfo.QQID=relation.RelationQQID where relation.QQID=54789625 and relation.relationStatus=0 group by Province order by count(*) desc
查询结果:
北京市 6
江苏省 6
湖南省 5
山西省 2
陕西省 1
天津省 1
浙江省 1
广西省 1
贵州省 1
河南省 1
黑龙江省 1
安徽省 1
澳门 1
北京 1
/*注意: 显示结果与方法一稍有差别,在湖南省的人数这一行比方法一数量不一致;不知道是为什么导致的,希望大神能帮解惑 */