在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产品和一些与产品相关的属性组合。
感谢您的帮助 安迪
答案 0 :(得分:0)
假设表格的名称为product
和property
,而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