我有一张桌子:temp_shoppingcart。
在temp_shoppingcart中,我有temp_shoppingcart_id,user_id,product_id,数量和颜色。任何时候,用户在购物车中添加一个项目,它将添加一个新行来存储数据。
所以数据会有类似user_id:1,product_id:123,数量:1,颜色:黑色。如果用户再次添加相同的项目,则将输入与新行相同的数据。所以会有两次相同的行。
如何显示数据,以便将同一产品组合在一起显示为同一行,但数量是2行的总和?
答案 0 :(得分:0)
实际上,这是一个非常基本的查询概念。也许您可以查看一些MySQL教程并了解更多信息。这样的事情:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
无论如何,下面的查询
SELECT product_id,SUM(数量),GROUP_CONCAT(颜色)
从表
GROUP BY product_id
将显示一个总和数量的行。 GROUP_CONCAT(颜色)将显示例如"红色,红色"如果两个条目"颜色"领域是红色的。
如果您想按颜色对项目进行分组,我建议您使用下面的查询。
SELECT user_id,product_id,color,SUM(quantity)
来自temp_shoppingcart
GROUP BY user_id,product_id,color
如果您不想按颜色分组
SELECT user_id,product_id,GROUP_CONCAT(颜色),SUM(数量)
来自temp_shoppingcart
GROUP BY user_id,product_id