请问:A表
----------------------------------------------------
aid  name
1      记录一
2      记录二
3      记录三
----------------------------------------------------B表
----------------------------------------------------
bid  aid
1     1
2     1
3     1
4     2
5     1
----------------------------------------------------
怎样得到结果为:
----------------------------------------------------
name      number
记录一     4
记录二     1
记录三     0
----------------------------------------------------

解决方案 »

  1.   

    select a.name, count(b.aid) as number
    from a left join b on a.aid = b.aid
    group by b.aid order by number desc;
      

  2.   

    select a.name, if(isnull(count(b.aid)),0,count(b.aid)) as number
    from a left join b on a.aid = b.aid
    group by b.aid order by number desc;
      

  3.   

    to 地主
    我试了下,不用判断是否为NULL也能得到没有记录的那条显示0,谢谢两位,马上结贴