这些是我的表格:
Categories table
================
id (fk)
category_name
Items table
===========
id (pk)
item_name
category_id (pk)
一个类别有很多项目
一个项目有一个类别
假设我有这些数据:
Categories
==========
id category_name
-----------------------
1 Foods
2 Beverages
3 Computer
4 Cats
Items
=====
id item_name category_id(fk)
1 Rice 1
2 Chicken 1
3 Mouse 3
4 Keyboard 3
我用来计算按类别名称分组的项目的查询:
SELECT
categories.id,
categories.category_name,
COUNT(items.item_name) AS items
FROM
items
INNER JOIN categories ON items.category_id = categories.id
GROUP BY
category_name
我已尝试使用上述查询来显示计数,但它并未显示类别表中的所有行。好吧,当然有些项目可能不在类别中,但我如何显示空类别?
最佳答案
你能试试这个吗?
SELECT
categories.id,
categories.category_name,
COUNT(items.item_name) AS items
FROM
categories LEFT JOIN items
ON items.category_id = categories.id
GROUP BY
categories.id, category_name
仅打印空类别
SELECT
categories.id,
categories.category_name
FROM
categories LEFT JOIN items
ON items.category_id = categories.id
WHERE items.category_id IS NULL;
关于mysql - SQL - 使用 Count() Group By 显示所有空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20393637/