【问题标题】:How to count rows in one table based on another table in mysql 2如何根据mysql 2中的另一个表计算一个表中的行数
【发布时间】:2014-07-09 14:49:42
【问题描述】:
我检查了this answer,但我遇到了问题。
SQL Fiddle(我把INNER JOIN改成了LEFT JOIN)
如果我的departments 中有一行(例如 DDD)并且在courses 表中没有关联。
正如您在小提琴中看到的那样,即使没有 DDD 部门的数据,DDD 部门的计数也是 1,就像 BUS 部门一样。我知道LEFT JOIN 会这样做,但我该如何修改呢?
如何让 DDD 部门的 count = 0?
【问题讨论】:
标签:
mysql
sql
select
count
【解决方案1】:
尝试COUNT(c.section),这样当部分因无关联而导致 null 时,在计数中它的计算结果为零
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