SQL CASE SUM给我0

时间:2014-03-26 20:59:05

标签: 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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

此代码SELECT category.category_id,更改为SELECT category.category_id, category_description.name,

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