select a1_主键, a2, a3, a4,count(a1_主键) from (select A.a1_主键,a2, a3, a4,b4 from A join B on A.a1_主键=B.b4) D group by D.a1_主键,D.a2,D.a3,D.a4
按照楼主的意思,你去看一下你A表的结构,看看a1这个属性的设置是不是有问题,是不是默认取值设置成为了1
别用left join了,用inner join吧,然后union上那些不在B中的A的记录。