在SQL请求中是否可以执行此类操作:
在第一张表(产品)中,我有以下内容:
ID名称
1表
2主席
在第二张表(颜色)中,我有以下内容:
id productID颜色
1 1红色
2 1绿色
3 2白色
我想为每个产品提供一个列表,告诉我我的dbb中存在颜色。 例如,我希望SELECT返回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