Mysql SQL CASE SUM为0

Mysql SQL CASE SUM为0,mysql,sql,sum,Mysql,Sql,Sum,我有以下代码: SELECT category.category_id, SUM( CASE(category.parent_id) WHEN 0 THEN category_description.name ELSE 0 END ) AS category_main FROM category LEFT JOIN category_description ON category_description.category_id = ca

我有以下代码:

SELECT category.category_id, SUM(
    CASE(category.parent_id)
    WHEN 0 
        THEN category_description.name 
    ELSE 0 
    END
) 
AS category_main 
FROM category 
LEFT JOIN category_description ON category_description.category_id = category.category_id
GROUP BY category.category_id;
输出在类别_main中为0

category_id      category_main
     1                 0
     2                 0
     3                 0
     4                 0
我想要的是得到类别的名称,因为category_description.name包含类别的名称

我想要的结果是:

 category_id     category_main
     1               Toys
     2               Gifts
     3               Cars
     4               For men

SUM
用于数值。对于预期结果,似乎只需简单选择即可:

SELECT
    c.category_id,
    CASE c.parent_id WHEN 0 THEN d.name END as category_main
from category c
    LEFT JOIN category_description d
        ON d.category_id = c.category_id

此代码
SELECT category.category\u id,
更改为
SELECT category.category\u id,category\u description.name,


您必须在SQL查询中为select添加新列。

您的意思是
SUM
,还是
COUNT
?Andrew,我真的不知道,因为当我用只包含数字的列测试它时,它对我有效,但是现在我需要输出文本,我不知道该怎么做你已经提供了想要的结果,但是你还没有提供源数据。我想在这种情况下,他会在
category\u main
列中得到
null
-s。哇!!!罗恩,我很高兴你帮了我。我坐了两天,头破血流。非常感谢你@哈姆雷特·哈科比扬:不,我的情况下没有得到所有的空值,我只需要在什么时候宣布更多的情况,就这样。我刚刚得到了结果。谢谢大家的帮助!!!