有以下三个表,字段如下示:
一个会员表:UID,UName一个新闻评论表:NID,UID一个产品评论表:PID,UID请问如何写这个查询语句,按评论的多少显示会员名称,评论数。

解决方案 »

  1.   

    select uname from 会员表 a join 新闻评论表 b on a.UID=b.UID group by Uname order by count(1) desc
      

  2.   


    select uname 
    from 会员表 a 
      join (
        select * from 新闻评论表
         union all
        select * from 产品评论表
        ) b 
        on a.UID=b.UID 
    group by Uname order by count(1) desc
      

  3.   


    select a.*
    from 会员表 a
        left join 
    (
    select UID,[cnt]=count(1)
    from
    (
    select NID,UID from 新闻评论表
    union all
    select PID,UID from 产品评论表
    ) a
    ) b
    on a.UID = b.UID
    order by isnull(b.cnt,0)
      

  4.   

    select uname 
    from 会员表 a 
      left join (
        select * from 新闻评论表
         union all
        select * from 产品评论表
        ) b 
        on a.UID=b.UID 
    group by Uname 
    order by count(b.UID) desc所有会员这样。
      

  5.   


    --少了group by
    select a.*
    from 会员表 a
        left join 
    (
    select UID,[cnt]=count(1)
    from
    (
    select NID,UID from 新闻评论表
    union all
    select PID,UID from 产品评论表
    ) a
    group by UID
    ) b
    on a.UID = b.UID
    order by isnull(b.cnt,0)
      

  6.   

    问题已解决,谢谢SQL语句如下:
    Select count(1) As Result,a.uname From 会员表 As A join (Select * From 新闻评论表 Union All Select * from 产品评论表) As B on A.UID=B.UID group by a.uname order by Result desc