我正在尝试从表中获取结果,包括外部表中的出现计数。该表可以有 0 次或多次出现。
就像下面的例子一样:
表:颜色
+------+---------+
| id | name |
+------+---------+
| 1 | red |
| 2 | blue |
| 3 | yellow |
| 4 | green |
+------+---------+
表: 水果
+--------+----------+
| name | color_id |
+--------+----------+
| apple | 1 |
| banana | 3 |
| grape | 4 |
| lemon | 3 |
+--------+----------+
所以我需要列出水果表中的每种颜色和出现次数,返回如下内容:
1, red, 1
2, blue, 0
3, yellow, 2
4, green, 1
我正在尝试这个查询:
SELECT `c`.`id`, `c`.`name`, COUNT(1)
FROM color `c`
LEFT JOIN fruit `f`
ON `c`.`id` = `f`.`color_id`
GROUP BY `c`.`id`
此查询返回的计数1为“蓝色”而不是0。因为“蓝色”这个颜色没有出现在水果桌上