首页 新闻 会员 周边 捐助

问题列表绑定每一个问题的回答数,这个sql语句怎么写

0
[待解决问题]

想这样的,我的2个表如下

 

问题表Q:

id  name  uid addtime   cons

编号 问题标题 用户 时间   问题内容

回答表A

id cons  uid addtime  Qid

编号 回答内容  用户  时间  问题编号

 

上面的回答数,能不能写一个sql,即返回问题,又返回这个问题的回答数,这样就可以连接一次数据库,提高性能,sql怎么写呢

小明同学的主页 小明同学 | 初学一级 | 园豆:12
提问于:2013-01-25 15:24
< >
分享
所有回答(4)
0

select *,count=(select count(*) from a where qid=q.id) from q

Rich.T | 园豆:3440 (老鸟四级) | 2013-01-25 15:27
0

在表Q中添加一个字段answerCount,同时添加一个触发器(当回答表A insert 时,更改answerCount值).

jingjunfeng | 园豆:873 (小虾三级) | 2013-01-25 17:42
0

select count=(select count(0) from a where a.qid=q.id),q.* from q

冰 鱼 | 园豆:282 (菜鸟二级) | 2013-02-08 13:35
0

按照该类问题的主流解决方法是不每次count的,一般情况对统计数不会要求严格的及时一致性。为了性能大部分都是保证延迟就好,也就是说count的结果不是每添加一条都会变。这样能保证性能。不信你看大部分网站的评论数什么的。

如果非得计算:

select name,count(1) answerCount from
(
    select a.name from #qestion q left join #answer a
    on q.qid = a.qid
) c
group by name

luofer | 园豆:468 (菜鸟二级) | 2013-02-21 17:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册