mysql - 计算远程表中每行的总匹配数

时间:2015-06-17 02:28:49

标签: mysql

如果我有两张桌子

enter image description here

enter image description here

我想要一个看起来像这样的结果:

enter image description here

SELECT app_status.title, count(*) as count FROM application as app LEFT JOIN application_status as app_status ON app.application_status_id  = app_status.application_status_id GROUP BY app.application_status_id;

我已尝试过上述查询,但只返回值(如果存在)。这意味着它将计算> 0但是如果它= 0那么它不会包含那一行并最终看起来像这样

enter image description here

1 个答案:

答案 0 :(得分:2)

您的left join顺序错误。另外:

  • count()更改为第二个表中的计数。
  • 更改group by以匹配第一个select列。
  • 聚合列应来自left join
  • 中的第一个表

因此,生成的查询是:

SELECT app_status.title, count(app.application_status_id) as count
FROM application_status app_status LEFT JOIN
     application app 
     ON app.application_status_id = app_status.application_status_id
GROUP BY app_status.title
ORDER BY MIN(app_status.application_status_id);