我有合格的风险,描述和创建日期,谁附加到风险的子类别,这最后一个附加到风险类别,每个风险有一个名称,如“风险1”我的目标是根据过去3个月的名称和风险类别来计算风险的数量。如何获得计数(*)返回0
我有这样的SQL请求:
SELECT MONTH(risk.creation_date) as month, count(*) as number, risk_category.name as risk_name FROM risk As risk
JOIN risk_subcategory on risk_subcategory.id = risk.risk_subcategory_id
JOIN risk_category on risk_category.id = risk_subcategory.risk_category_id
where risk.creation_date >= (NOW()-INTERVAL 3 MONTH) GROUP BY MONTH(risk.creation_date), risk_category.name;
它返回这个结果集:
month number risk_name
---------------------------
12 1 Risk 1
12 3 Risk 2
1 1 Risk 3
1 9 Risk 2
2 1 Risk 3
2 1 Risk 1
2 10 Risk 2
我想这个结果(包括0):
month number risk_name
---------------------------
12 1 Risk 1
12 3 Risk 2
12 0 Risk 3
1 0 Risk 1
1 1 Risk 3
1 9 Risk 2
2 1 Risk 3
2 1 Risk 1
2 10 Risk 2
我该怎么办? 感谢
使用左外连接。 –
谢谢你,但它不会改变结果集。 –
我认为你需要使用Inner Join来获得左右组合 –