我有两个名为A
和B
的表,在这里您可以看到A
和B
A | id | title
-------------------------
1 | A1
2 | A2
3 | A3
B | A_id | title
-------------------------
1 | B1
1 | B2
1 | B3
我想做的是计算B中A_id
的数量,我尝试了以下查询:
select A.title as "title",count(title) as "count" from A left join B on A.id = B.A_id
这将给我以下结果:
title | count
---------------
A1 | 3
A2 | 1
A3 | 1
A4 | 1
我需要拥有的是:
title | count
---------------
A1 | 3
A2 | 0
A3 | 0
A4 | 0
答案 0 :(得分:3)
有关您的查询的问题:
您的查询缺少bindir, sbindir, libexecdir, pkglibexecdir
子句。您似乎正在使用禁用了选项GROUP BY
的MySQL版本,因此,MySQL不会向您抛出适当的错误,而是愉快地执行查询。
ONLY_FULL_GROUP_BY
含糊不清,因为该列存在于两个表中。这应该会产生一个错误。您实际上想依靠来自表count(title)
的列;我将使用B
,以防万一B.A_id
中的某些记录为空B
。
考虑:
title
旁注:
我建议使用反引号作为标识符而不是双引号。这就是MySQL的方式
select A.title, count(B.A_id) as `count`
from A
left join B on A.id = B.A_id
group by A.title
是重新发布的:它仅相当于A.title as title
答案 1 :(得分:2)
通过在计数内添加B.A_id
来尝试以下操作
select A.title as "title",count(B.A_id) as "count"
from A left join B on A.id = B.A_id
group by A.title