一个联表统计的问题

有两张表a表和b表,a表的数据是唯一的为主表,a.aname和b.bname是相同的,可以用来关联两个表,b表中是多条数据,意思就是一对多的关系,现在我想统计b表的条数

想要的格式是:
array(n)(

0=>array(2)(
   ['aname']=> xxx,
   ['count']=> m,
)

)

统计的m为b表中的条数 并且b.bname=a.aname

请问 sql语句该怎么写

阅读 2.4k
4 个回答

SELECT COUNT(b.bname) as count,aname FROM a LEFT JOIN b on a.aname = b.bname
GROUP BY aname

group by a.aname

SELECT COUNT(*) as `count`,aname FROM a RIGHT JOIN b on a.aname = b.bname
GROUP BY aname 

select b.bname,count(b.bname) as count from b left join a on a.aname = b.bname group by b.bname;
全部展示b表的情况
select b.bname,count(b.bname) as count from b right join a on a.aname = b.bname group by b.bname;
全部展示a表的情况
select b.bname,count(b.bname) as count from b inner join a on a.aname = b.bname group by b.bname;
只输出有双方都有的情况

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题