count(*)的连接表统计,

alan chen 1315333 qq 2004-01-30 11:41:36
比如,A为新闻类型表,B为新闻表。
A表两个字段:id,type
B表:id,title,content,type_id,...
统计出每种新闻类型下的新闻数:
select count(*) from B right inner join A on A.id=B.type_id group by A.id

我用getrows获取结果,但枚举结果的时候,类型下还没有新闻的 类型结果却都是1,请问这是什么原因,该怎么解决?我直接用的rs.open sql,conn
...全文
72 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cloudchen 2004-01-30
  • 打赏
  • 举报
回复
首先,你是不是写错了?哪来的right inner join?内连接不分左右

其次,不应该是count(*),count是按字段的非null来统计记录数的

try:

select count(B.type_id) from B right join A on A.id = B.type_id group by a.id
  • 打赏
  • 举报
回复
to lbd8848(lbd):
在B表不存在的类型也要统计
lbd8848 2004-01-30
  • 打赏
  • 举报
回复
select count(*) from B inner join A on A.id=B.type_id group by A.id
  • 打赏
  • 举报
回复
问题是这样的:

比如A表有个id为5,而在B表中还没有一条类型(type_id)是5的新闻,这个时候统计出类型5的新闻数的值却是1,其他时候数据是正确的(目前所知)
  • 打赏
  • 举报
回复
to zorou_fatal:
跟别名没有关系
zorou_fatal 2004-01-30
  • 打赏
  • 举报
回复
select count(*) as tempcount from B right inner join A on A.id=B.type_id group by A.id

加个 别名 看看
anddytang 2004-01-30
  • 打赏
  • 举报
回复
用count(*)选出来的只是记录的条数!!!
并不是记录!
  • 打赏
  • 举报
回复
纪俊 2004-01-30
  • 打赏
  • 举报
回复
select count(*) from B 得到的是个数字啊
  • 打赏
  • 举报
回复
我还不理解表头是什么???
whb147 2004-01-30
  • 打赏
  • 举报
回复
呵呵
因为你统计的结果是1呀
她只有统计结果,没有表头的
表头好象要你自己加,
  • 打赏
  • 举报
回复
to cloudchen(陈系上.net)
我是用的access

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧