SELECT count(r_aid) as num,c_name,a_cid,a_title,a_content,a_rtime FROM kk_class,kk_article,kk_reply WHERE c_id=3 && a_id=3 && r_aid=a_id
帮我看看...class是分类,article是文章,reply是文章的回复
现在问题是如果有回复那么都有数据,但没回复时获取的字段都是NULL我想要的是查看这篇文章同时又统计回复数目
请问这SQL该怎么改?

解决方案 »

  1.   

    select cnt,c_name,a_cid,a_title,a_content,a_rtime 
    from kk_class inner join kk_article on c_id=a_id
    left join (select r_aid,count(*) as cnt from kk_reply group by r_aid) t on a_id=t.r_aid
      

  2.   

    建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  3.   


    SELECT c.ct as num,a.c_name,b.a_cid,b.a_title,b.a_content,b.a_rtime 
    FROM kk_class a,kk_article b,
    (select count(1) ct from kk_reply where r_aid=3) c
    WHERE b.a_id=3 and a.c_id=3;
      

  4.   

    十分感谢你们.
    3L是我要的答案.
    你们让我又学到了一些东西.2L的sql语句我不是太明白,帮助手册里解释的关键词不是很详细.