我做了个简单的新闻系统,需要取出最热门新闻,是根据评论数的多少取出。news表有个newsID,comment有commentNewsid是news表的外键,那怎么写sql语句或存储过程,按评论数从多到少来得到新闻呢,谢谢!

解决方案 »

  1.   

    select
      a.newsid,count(b.comment) as num
    from
      news a join comment b
    on
      a.newsid=b.newsid
    order by
       2 desc
      

  2.   

    select n.newsID,qty=count(c.*) from new n
    left join comment c
    on n.newsID = c.commentNewsid
    group by n.newsID 
    order by qty
      

  3.   

    --掉了group by
    select
      a.newsid,count(b.comment) as num
    from
      news a join comment b
    on
      a.newsid=b.newsid
    group by
      a.newsid
    order by
       2 desc
      

  4.   

    order by
       2 desc
    是什么意思啊?
      

  5.   

    用JOIN 的话,没有comments的都露掉了呀。。
    要用left join