2

我有一张名为“股票”的表:

    股票编号 | prod_id | 尺寸 | 颜色 | shop_id | 数量

    1 | 4 | 大号 | 红色 | 1 | 3
    2 | 4 | 加大码 | 蓝色 | 2 | 1
    3 | 4 | 大号 | 红色 | 3 | 2
    4 | 2 | XXL | 白色 | 1 | 7
    5 | 4 | 大号 | 红色 | 4 | 1

其中一些..

我有一个产品表和一个商店表。

我想要的结果是这样的:

    prod_id | 产品名称 | 店铺名 | color_size_qty
       4 | T 恤 | 店铺 1 | 红色,L,(3)
       2 | T 恤 | 店铺 1 | 白色,XXL,(7)
       4 | T 恤 | 店铺 2 | 蓝色,XL,(1)

我不知道你能不能理解我。我得到的最接近的是

prod id | prod_name |        Colors         |     sizes   |
   4    | T-Shirt   |Red,Red,Red,Blue,White | L,L,L,XL,XL  

甚至不像你看到的那样接近。希望您能够帮助我。

4

1 回答 1

5

A simpleCONCAT()可能是您所需要的,而不是 a GROUP_CONCAT()

SELECT
    prod_id, prod_name, shop_name,
    CONCAT(color, ',', size, ', (', qty, ')') AS color_size_qty
FROM
    stock
    JOIN products ON stock.prod_id=products.id
    JOIN shops ON stock.shop_id=shops.id
ORDER BY
    prod_name ASC, shop_name ASC
于 2012-07-13T19:44:59.537 回答