MySQL - 获取产品数量

时间:2016-03-04 21:53:40

标签: mysql sql

在mySql中,我需要找到有金额的产品。

这不是问题而且容易。 (这只是一个例子

ProductID,Name,Ammount 
1,PRODUCT1,5

但我有很多这个产品的属性。 (不仅颜色和大小)

PropertiID,Name
1,black
2,yellow
3,red
4,blue
5,S
6,M
7,L
8,XL

这给了我很多ID为1的产品组合 例如:

PRODUCT1,black,S
PRODUCT1,red,XL
PRODUCT1,red,L
PRODUCT1,red,M
...

我必须保存每个组合的数量。

PRODUCT1,black,S,4
PRODUCT1,red,XL,6
PRODUCT1,red,L,2
PRODUCT1,red,M,0
...

问题在于金额。 我在哪里可以节省金额。 我有1行1产品和一些与产品相关的属性组合。

感谢您的帮助     安迪

2 个答案:

答案 0 :(得分:0)

假设表格的名称为productproperty,而property有产品ID参考,则以下查询应该有效:

select p.productId, amount, group_concat(pr.name)
from product p join property pr on p.productId = pr.productId
group by p.productId, amount

答案 1 :(得分:0)

您需要一个ProductProperties表来关联这两个表。然后,您可以使用GROUP_CONCAT来组合所有属性。

SELECT p.productID, p.amount, GROUP_CONCAT(pr.name) AS properties
FROM Product AS p
JOIN ProductProperties AS pp ON p.productID = pp.productID
JOIN Property AS pr ON pr.PropertyID = pp.PropertyID
GROUP BY p.productID