【问题标题】: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
    

    Demo

    【讨论】:

      猜你喜欢
      • 2013-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      相关资源
      最近更新 更多