mysql - SQL CASE SUM 给我 0

标签 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 = category.category_id
GROUP BY category.category_id;

输出在category_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

关于mysql - SQL CASE SUM 给我 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22672921/

相关文章:

mysql - ADO 中的参数化查询 - 将数据添加到数据库中

mysql - 按组自动递增

php - 关于php的关系数据库问题

Python 无法正确求和列表

php - 嵌套方法对吗?为什么我得到空查询?

php - SQL左外连接选择不匹配的记录?

mysql - 带有 WHERE 子句的 SQL COUNT

mysql - Select From 从查询中动态获取的表名

mysql - 如何内连接2个表并对第三个表求和

arrays - 包含自定义类的数组总和(Swift)