表A 有id name 字段
表B 有id a_id 字段
A的id与B的a_id是一对多的对应关系。
比如
A表有以下数据:
id name
1 aaa
2 bob
3 ccc
4 ddd
B表有以下数据
id a_id
1 1
2 1
3 2
4 1
想要得到表A的所有数据 表B分组的对应A的总和
用这样的sql语句
select A.*,count(B.id) as c from A,B where A.id = B.a_id and e.{$b} GROUP BY B.a_id order by c desc
结果是这样的
id name c
1 aaa 3
2 bob 1
这样能出来我想要的结果,但是如果B表中没有某个a_id,那A表的数据也不显示。
我想让他把表A的数据全部显示,也就是把下面的两条都显示上。怎么写sql语句呢?
id name c
3 ccc 0
4 ddd 0
你的写法是内连接,用左外连接就可以了: