【问题标题】:Join two table grouping by and count even when no value found (show as 0) [duplicate]即使没有找到值(显示为0),也可以加入两个表分组并计数[重复]
【发布时间】:2021-02-28 09:45:50
【问题描述】:

我想连接两个表,根据表 B 中的元素对表 A 中的元素进行计数和分组。此表可以有重复项 (A):

这是输出(B)的参考表:

我想得到这样的输出:

所以输出与 B 表的行数相同,但计算 A 中的行数。

我试图做类似的事情但没有成功:

SELECT B.id, B.Serial, B.Type, COUNT(A.id)
FROM B
LEFT JOIN A ON A.id = B.id
WHERE B.id = 100
GROUP BY B.Serial, B.Type

有人可以帮助我吗?

【问题讨论】:

标签: mysql sql join left-join


【解决方案1】:

你不需要GROUP BY

您需要一个简单的子查询。

SELECT *, (SELECT COUNT(*) FROM A WHERE ID = B.ID AND Serial = B.Serial AND Type = B.Type) COUNT
FROM B

【讨论】:

    猜你喜欢
    • 2017-12-14
    • 2015-02-02
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    • 2021-09-05
    • 2014-09-25
    • 2018-11-12
    • 2018-06-08
    相关资源
    最近更新 更多