我查了this answer,但我遇到了问题。
SQL Fiddle(我将INNER JOIN
更改为LEFT JOIN
)
如果departments
(例如DDD)中有一行,courses
表中无关联,该怎么办?
正如你可以看到的那样,即使没有DDD部门的数据,DDD部门的数量也是1,就像BUS部门一样。我知道LEFT JOIN
会这样做,但我该怎么修改呢?
如何为DDD部门获取count = 0
答案 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