我有以下 MYSQL 查询:
SELECT categories.key, categories.name, count(*) as itemsCount
FROM categories
LEFT JOIN designs
ON categories.key = designs.category
GROUP BY categories.name ASC
它的工作是选择所有类别并计算属于每个类别的设计数量。但是,我的应用程序和数据库设置为如果“designs
”表中的“category
”字段的值为“0”,则此设计属于虚拟(“categories
”表中没有 key = 0
的类别)“unassigned
”类别。
我的问题是...是否可以修改我的查询以将不属于任何现有类别的设计也计算在内?
也许我把事情搞得太复杂了,用“0”键添加一个类别要容易得多,但为了学习,也许有更好的方法?
谢谢。
SELECT d.category, c.name, COUNT(d.category)
FROM (
SELECT 0 AS key, 'VIRTUAL' AS name
UNION ALL
SELECT key, name
FROM categories
) c
LEFT JOIN
designs d
ON d.category = c.key
GROUP BY
c.key
我是一名优秀的程序员,十分优秀!