表一:articleid    title      content
1     新闻一     内容一
2     新闻二     内容二
3     新闻三     内容三
4     新闻四     内容四表二:
replayid   articleid      name
1        1         姓名一
2        1         姓名二
3        2         姓名三
4        3         姓名四
5        3         姓名五replay表的articleid对应article的id
想要的数据是:
replay表的id articleid  name
article表的title
再加上每篇日志下的回复数count查处这样的结果,(不要弄存储过程)id    articleid    name     title     count
1       1         姓名一    新闻一      2
2       1         姓名二    新闻一      2
3       2         姓名三    新闻二      1
4       3         姓名四    新闻三      2
5       3         姓名五    新闻三      2
就是上面的样子,就是在回复表后面多了两列,一列是回复的新闻标题,一列是对应的那篇新闻下面的回复数。要弄sql语句的,好像是group by
我就被败在这上面了。
希望高手解决。

解决方案 »

  1.   

    select a.id,a.articleid,a.name,b.title,b.count
    from replay a left join 
    {
    select c.*,(select count(*) from replay where replay.articleid=c.id) as count  from article  c
    }
    article b on a.articleid=b.id
      

  2.   

    select a.id,a.articleid,a.name,b.title, count=(select count(*) from replay 
    left join article c  where articleid=c.id) 
    from  replay a left  join article c  where a.articleid=c.id
      

  3.   

    SELECT RePlay.ID,RePlay.Articleid,rePlay.rename,rePlay.articleid,Articles.title,count(articleid) as count FROM Articles RIGHT OUTER JOIN RePlay ON Articles.id = RePlay.Articleid GROUP BY RePlay.ID, RePlay.Articleid,RePlay.rename,Articles.title order by RePlay.ID desc上面是我写的,不知道是怎么回事,那个count总是1,
    不会变。我郁闷