不太确定这个标题是否真正解释了我真正需要提出的问题,所以我很抱歉。
基本上,我有两张桌子(产品和库存)。
在产品方面,我有两种产品:
ID:1 ||名称:顶部 ID:2 ||名称:底部
有货,我有五条库存线:
ID:1 ||产品ID:1 ||尺寸:中等
ID:2 ||产品ID:1 ||尺寸:大号 ID:3 ||产品ID:2 ||尺寸:中等
ID:4 ||产品ID:3 ||尺寸:7
ID:5 ||产品ID:3 ||大小:8
我需要做的是提取所有有库存的产品,因此我的代码目前是:
SELECT p.ID, p.Name, s.Size FROM products p JOIN stock s ON s.ProductID = p.ID
然后将以下内容拉出来:
ID:1 ||名称:顶部||尺寸:中等
ID:1 ||名称:顶部||尺寸:大号 ID:2 ||名称:底部||尺寸:中等
ID:3 ||名称:鞋子||尺寸:7
ID:3 ||名称:鞋子||大小:8
我想要做的是将每个ID的大小放在一列(逗号分隔)中 - 因此我希望它看起来像:
ID:1 ||名称:顶部||尺寸:中,大号 ID:2 ||名称:底部||尺寸:中等
ID:3 ||名称:鞋子||大小:7,8
有谁知道我怎么做到这一点?我应该知道怎么做,但我的思绪已经空白了!
答案 0 :(得分:1)
SELECT p.ID, p.Name, GROUP_CONCAT(s.Size) AS Size
FROM products p
JOIN stock s ON s.ProductID = p.ID
GROUP BY p.ID
这应该可以正常工作。
答案 1 :(得分:0)
如果您的数据库是mysql,请使用GROUP_CONCAT。
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat