MYSQL 查看 COUNT() 不包括零
MYSQL View COUNT() not including zeros
我有两个 MySQL tables:
- dpu_table
- jobs_table
我创建了一个视图,用于计算列中 table 出现的行数。 VIEW 效果很好,除了它不会为它没有计数的实例显示零。
如何显示零计数?
以下是 table:
这是我的 SQL 视图:
CREATE VIEW `jobs_view` AS SELECT
`a`.`id`,
`a`.`jobnum`,
COUNT(`b`.`id`) AS `dpu_total`
FROM `jobs_table` `a`
INNER JOIN `dpu_table` `b` WHERE `a`.`id`=`b`.`jobnum_id`
GROUP BY `b`.`jobnum_id`
这是视图的样子:
我遗漏了其他职位编号。我想在 "dpu_total"
的列中显示“0”
有人能帮忙吗?
编辑
感谢提供的答案,诀窍是使用 LEFT JOIN
而不是 INNER JOIN
。我还必须用 WHERE
代替 ON
并按 jobs_table.id
分组。新代码是:
CREATE VIEW `jobs_view` AS SELECT
`a`.`id`,
`a`.`jobnum`,
COUNT(`b`.`id`) AS `dpu_total`
FROM `jobs_table` `a`
LEFT JOIN `dpu_table` `b`
ON `a`.`id`=`b`.`jobnum_id`
GROUP BY `a`.`id`
尝试使用 LEFT JOIN 而不是 INNER JOIN!
我有两个 MySQL tables:
- dpu_table
- jobs_table
我创建了一个视图,用于计算列中 table 出现的行数。 VIEW 效果很好,除了它不会为它没有计数的实例显示零。
如何显示零计数?
以下是 table:
这是我的 SQL 视图:
CREATE VIEW `jobs_view` AS SELECT
`a`.`id`,
`a`.`jobnum`,
COUNT(`b`.`id`) AS `dpu_total`
FROM `jobs_table` `a`
INNER JOIN `dpu_table` `b` WHERE `a`.`id`=`b`.`jobnum_id`
GROUP BY `b`.`jobnum_id`
这是视图的样子:
我遗漏了其他职位编号。我想在 "dpu_total"
的列中显示“0”有人能帮忙吗?
编辑
感谢提供的答案,诀窍是使用 LEFT JOIN
而不是 INNER JOIN
。我还必须用 WHERE
代替 ON
并按 jobs_table.id
分组。新代码是:
CREATE VIEW `jobs_view` AS SELECT
`a`.`id`,
`a`.`jobnum`,
COUNT(`b`.`id`) AS `dpu_total`
FROM `jobs_table` `a`
LEFT JOIN `dpu_table` `b`
ON `a`.`id`=`b`.`jobnum_id`
GROUP BY `a`.`id`
尝试使用 LEFT JOIN 而不是 INNER JOIN!