有两个表a和b,a中有a_id,a_name,b中有b_id,a_id,我想分别统计b表中a的数目,如果没有就显示0
select a.*,count(*) as a_number from a,b where b.a_id=a.a_id group by a_id,a_name 查出来后我是想得到三列:a_id,a_name,a_number 这样语句的结果是错误的 怎么改正呢?急!!!!!
但是查出来之后,比如b中没有a_id=2的记录,可是显示出来的结果不对呀
追答try this, should be fine now:
select a.a_aid, a.a_name, sum(case when b.b_bid is null then 1 else 0 end) as a_number
from a left join b on a.a_id = b.a_id
group by a.a_aid, a.a_name
但是查出来之后,比如b中没有a_id=2的记录,可是显示出来的结果不对呀