【求解】非常怪异的SQL执行问题 【已解决】

[复制链接]
查看11 | 回复9 | 2010-3-1 11:19:07 | 显示全部楼层 |阅读模式
见图,第一个图中,在2010-01-01这天对应的 site_id = 5298是没有任何记录的
但是见第二个图中,时间还是2010-01-01,还是site_id = 5298,数据显示的是空的,但是记录会有1条, 记录应该是0条才对的啊
这是为什么?


有谁能解释下
[ 本帖最后由 fan0124 于 2010-5-28 16:25 编辑 ]
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
本来就是这样的啊!~
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
太正常不过来
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
为啥?
没有记录,那第二个图显示就应该是记录数为0,也就是select count(*) from(第二个图的SQL语句),结果应该是0,但是现在第二个图 count以后就是1,表示记录
数为1,不对吧
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
原帖由 fan0124 于 2010-5-28 15:47 发表
为啥?
没有记录,那第二个图显示就应该是记录数为0,也就是select count(*) from(第二个图的SQL语句),结果应该是0,但是现在第二个图 count以后就是1,表示记录
数为1,不对吧

为什么有行就代表记录数是1呢??
你随便到哪个数据库里建个空表,试试select sum(col) from table看看,都是有行的,分组就是这规则,你没有数据也是有结果的
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
如图,得到的结果记录是1条,但是执行是没有任何数据的,记录应该为0啊
具体解释下
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
对啊,你的内部查询是有记录的!~~~~~~~~~~~~~~~~~~~~
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
你的表中确实没有满足条件的记录,所以图一是0,图二你求和是一行空行,你再对图二的结果集count,有一个空行就返回1,有什么不对吗
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
原帖由 dingjun123 于 2010-5-28 15:51 发表
为什么有行就代表记录数是1呢??
你随便到哪个数据库里建个空表,试试select sum(col) from table看看,都是有行的,分组就是这规则,你没有数据也是有结果的


这样的啊,清楚了
不过如果这样,这个判断前台代码判断就比较复杂了
返回了结果集,像这种情况,判断肯定是有记录的,然后取却是空记录
那岂不是对于这种确实没有数据,但是记录数还是有的情况,只能把这种记录判断放前台去了呢?
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
判断有没有记录只能是count啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行