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。哇!!!罗恩,我很高兴你帮了我。我坐了两天,头破血流。非常感谢你@哈姆雷特·哈科比扬:不,我的情况下没有得到所有的空值,我只需要在什么时候宣布更多的情况,就这样。我刚刚得到了结果。谢谢大家的帮助!!!