Mysql 当字段计数为零时,如何通过聚合查询将组返回的值设置为零(0)?

Mysql 当字段计数为零时,如何通过聚合查询将组返回的值设置为零(0)?,mysql,Mysql,如果Table.id的计数为零,我希望从类型查询中获得返回的值(在本例中为零) SELECT COUNT(Table1.id) AS AccountID, Table2.typeName AS Types FROM Table1 LEFT JOIN Table3 ON Table1.productID = Table3.productID LEFT JOIN Table2 ON Table3.categoryID = Table2.CategoryID WHERE Table3.a

如果Table.id的计数为零,我希望从类型查询中获得返回的值(在本例中为零)

 SELECT COUNT(Table1.id) AS AccountID, Table2.typeName AS Types
 FROM Table1
 LEFT JOIN Table3
 ON Table1.productID = Table3.productID
 LEFT JOIN Table2
 ON Table3.categoryID = Table2.CategoryID
 WHERE Table3.account_id = 51
 GROUP BY Table2.typeName;


我想要一个表1中所有id的计数及其对应的typeName。如果id不存在,我希望返回带有相应typeName的a 0。

以下查询将起作用:

SELECT 
 COUNT(Table1.id) AS AccountID, 
 Table2.typeName  AS Types
 FROM Table2
 LEFT JOIN Table3
 ON Table3.categoryID = Table2.CategoryID
 AND Table3.account_id = 51
 LEFT JOIN Table1
 ON Table1.id = Table3.CategoryID     
 GROUP BY Table2.typeName;

以下查询将起作用:

SELECT 
 COUNT(Table1.id) AS AccountID, 
 Table2.typeName  AS Types
 FROM Table2
 LEFT JOIN Table3
 ON Table3.categoryID = Table2.CategoryID
 AND Table3.account_id = 51
 LEFT JOIN Table1
 ON Table1.id = Table3.CategoryID     
 GROUP BY Table2.typeName;

您的筛选器
表3.account\u id=51
左连接
转换为
内部连接
。尝试将
WHERE
条件移动到
ON
子句。您希望每个typename的总计数,还是只希望
帐户id=51
的总计数?只希望帐户id=51您的筛选器
表3。帐户id=51
左联接
转换为
内部联接
。尝试将
WHERE
条件移动到
ON
子句中。您希望每个类型名称的总计数还是仅针对
帐户\u id=51
?仅针对帐户\u id=51注释不用于扩展讨论;此对话已结束。评论不用于扩展讨论;这段对话已经结束。