2011-06-15 50 views
0

这里的product_id是我的查询组通过,但保存的所有记录某处

select p.product_id, ts.name as my_name, ss.step_number, p.specs, SUM(p.price), ssp.class_id 
from optional_system_step as ss 
join system as s on s.system_id=ss.system_id 
join category_description as cd on cd.category_id=ss.category_id 
join optional_system_step_product as ssp on ss.system_step_id=ssp.system_step_id 
join product as p on p.product_id=ssp.product_id 
join product_description as pd on pd.product_id=p.product_id 
join template_step as ts on (ts.template_id=s.optional_template_id and ts.step_number=ss.step_number) 
where s.system_id = '15' 
GROUP BY ssp.class_id, ss.step_number 
order by ss.step_number, ssp.class_id; 

返回正确的总和,但它只返回PRODUCT_ID的

78 sdzvzcxv 1  4047.0000 1 
143 sdzvzcxv 1  628.0000 2 
59 sdzvzcxv 1  962.0000 3 
57 another 2  638.0000 1 
134 another 2  858.0000 2 
62 another 2  548.0000 3 
98 xzcvzxc 3  863.0000 1 
106 xzcvzxc 3  634.0000 2 
98 xzcvzxc 3  1168.0000 3 

我在想,如果一个有是一种方法来收集product_id在群组之前,并将它们添加到一个字段中,也许逗号分开

78,55,66 sdzvzcxv 1  4047.0000 1 
143,77,88 sdzvzcxv 1  628.0000 2 
59,77,88 sdzvzcxv 1  962.0000 3 
57,77,88 another 2  638.0000 1 
134,77,88 another 2  858.0000 2 
62,77,88 another 2  548.0000 3 
98,77,890 xzcvzxc 3  863.0000 1 
106,76,88 xzcvzxc 3  634.0000 2 
98,57,87 xzcvzxc 3  1168.0000 3 
+0

您是否问我们**一次为您做好一件事? http://stackoverflow.com/questions/6363028/group-by-with-adding-the-values – 2011-06-15 20:01:39

+0

我不是要求任何人做我的工作......第一个问题已得到解决,我正在寻求帮助,甚至有可能.. – Trace 2011-06-15 20:05:39

回答

2

在MySQL中,您可以使用GROUP_CONCAT()将所有分组的值作为单个字段返回。但是,该函数默认的最大长度限制为1024个字符,之后它将静静地删除可能显示的更多值。您可以使用group_concat_max_len系统变量提高限制。

当然,在你的示例查询中,你实际上并不是在p.product_id字段上进行分组,所以这可能不会产生你想要的效果。

相关问题