| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1559 人关注过本帖
标题:使用SqlServer多表连接查询,两种方法查询得出的结果为什么不一样,如题,谢 ...
只看楼主 加入收藏
i微尘
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2020-3-15
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:2 
使用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
            
        /*注意: 显示结果与方法一稍有差别,在湖南省的人数这一行比方法一数量不一致;不知道是为什么导致的,希望大神能帮解惑 */

搜索更多相关主题的帖子: 方法 用户 查询 QQ 结果 
2020-05-25 17:54
sssooosss
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:3
帖 子:664
专家分:1115
注 册:2019-8-27
收藏
得分:10 
分别查询BaseInfo和relation两表内的湖南各有几个
2020-05-27 08:51
i微尘
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2020-3-15
收藏
得分:0 
回复 楼主 i微尘
select count(*) from BaseInfo where QQID in (select RelationQQID from relation where QQID=54789625 and relationStatus=0) and Province='湖南省'
/* 结果为4 */

select COUNT(*) from BaseInfo join Relation on BaseInfo.QQID=Relation.RelationQQID where Relation.QQID=54789625 and relationStatus=0 and Province='湖南省'
/* 结果为5 */

查询结果仍然不一致
2020-05-28 09:28
快速回复:使用SqlServer多表连接查询,两种方法查询得出的结果为什么不一样,如 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.064979 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved