在条件上返回行字段

时间:2013-12-25 15:04:49

标签: mysql sql select

在SQL请求中是否可以执行此类操作:

在第一张表(产品)中,我有以下内容:

ID名称
1表
2主席

在第二张表(颜色)中,我有以下内容:
id productID颜色
1 1红色
2 1绿色
3 2白色

我想为每个产品提供一个列表,告诉我我的dbb中存在颜色。 例如,我希望SELECT返回2行: 在第一行:表,红色,绿色 在第二排:椅子,白色。 谢谢

2 个答案:

答案 0 :(得分:1)

使用JOIN将提供行之间的匹配,GROUP_CONCAT将帮助您生成单行列表:

SELECT   name, GROUP_CONCAT(color) AS colors
FROM     product
JOIN     color ON product.id = color.product_id
GROUP BY name

答案 1 :(得分:1)

这是不可能的。查询结果集中的每个结果都具有相同数量的字段。

您可以使用GROUP_CONCAT伪造它:

SELECT name, GROUP_CONCAT(c.color)
FROM Product AS p
LEFT OUTER JOIN color AS c ON p.id = c.ProductID
GROUP BY p.name