gpt4 book ai didi

mysql - group_concat,将一列连接成一行,如果其他列相等

转载 作者:行者123 更新时间:2023-11-29 02:59:37 27 4
gpt4 key购买 nike

在我的包含衣服的数据库上运行以下查询会得到一个 result ,我有多行相同的产品,唯一的区别是尺寸列。

SQL 查询:

SELECT 
categories.name AS "category",
color_variant.pcode AS "code",
stock.size AS "size",
color_variant.price AS "price"

FROM
categories, product, color_variant, stock

WHERE
categories.id = product.category_id AND
product.id = color_variant.product_id AND
color_variant.id = stock.color_variant_id

ORDER BY
categories.id

我想加入每个产品的尺寸行,所以我得到类似的东西

 category    code               sizes               price
jean 1018918053 24,25,26,27,28,29,30,31,32 119.99
jean 1018916407 26 159.99
jean 1018917373 31 159.99
jean 1018917354 25 109.99
jean 1018919115 24,25,26,27,28,29,30,31,32 129.99
jean 1018913449 24,25,26,27 109.99

我通过将 stock.size AS "size", 替换为

来尝试 GROUP_CONCAT

GROUP_CONCAT(DISTINCT stock.size ORDER BY stock.size SEPARATOR ', ') AS "sizes",

但这给了我一个单行结果,其中每个大小行都被连接起来,即使我将它用作子查询,

category    code                    sizes                        price
jean 1018918053 1,105,11-12,115,2-3,23,24,25,26,27,28,2... 119.99

关于我做错了什么有什么想法吗?或者我该如何解决这个问题?

最佳答案

添加

GROUP BY categories.name, color_variant.pcode, color_variant.price 

就在您的 ORDER BY 之前

关于mysql - group_concat,将一列连接成一行,如果其他列相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25793635/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com