如何根据mysql 2中的另一个表计算一个表中的行数

时间:2014-07-09 14:49:42

标签: mysql sql select count

我查了this answer,但我遇到了问题。

SQL Fiddle(我将INNER JOIN更改为LEFT JOIN

如果departments(例如DDD)中有一行,courses表中无关联,该怎么办?

正如你可以看到的那样,即使没有DDD部门的数据,DDD部门的数量也是1,就像BUS部门一样。我知道LEFT JOIN会这样做,但我该怎么修改呢?

如何为DDD部门获取count = 0

1 个答案:

答案 0 :(得分:1)

尝试COUNT(c.section)所以当section结果为null且没有关联时,则在count中计算结果为零

SELECT d.abbreviation
, COUNT(c.section) num
FROM departments d
LEFT JOIN courses c ON c.section LIKE CONCAT(d.abbreviation, "%")
GROUP BY d.abbreviation

Demo