MySQL-获取产品数量

MySQL-获取产品数量,mysql,sql,Mysql,Sql,在mySql中,我需要找到有数量的产品 这不是问题,也不容易。(这只是一个例子) 但是我对这个产品有很多特性。(不仅仅是颜色和尺寸) 这给了我很多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 ... 问题在于数

在mySql中,我需要找到有数量的产品

这不是问题,也不容易。(这只是一个例子)

但是我对这个产品有很多特性。(不仅仅是颜色和尺寸)

这给了我很多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个产品和一些与产品相关的属性组合

谢谢你的帮助
Andy

假设表名为
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

您需要一个
ProductProperties
表来关联这两个表。然后可以使用
GROUP\u 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

产品
属性
表是如何关联的?它们之间没有外键。现在表之间没有关系。因为我如何混合产品和属性(超过1)。我保存弹药的地方。我必须在
产品
属性
之间建立一个帮助表吗?A
产品属性
表。然后我可以建立关系。然后我将
ProductID
PropertiesID
amount
保存在
Product\u Properties
表中。但是这不是一个很好的表。但是我在
产品
表中有一个产品的
p.amount
。但我有很多PRODUCT1的组合,它们的
PRODUCT1
数量不同,组合也不同。我不知道我把
金额存到哪里了
。我无法将其保存在
产品
表中,因为我每个产品有一行,并且有很多与
属性
的组合。。。。根据我的数据,我在一个产品中有80多种组合。我有大约300种产品,如果我用组合保存在产品表中,有24000种产品。因此,我在产品表中有300个产品和41个属性。产品的每一行都是具有特定属性集的产品实例。在
产品
表中可以有
1,产品1,4
2,产品1,6
。然后,
ProductProperty
表将指示
ProductID=1
具有属性
black
S
,而
ProductID=2
具有属性
red
XL
。是的,这是清楚的。但是用户必须输入80个产品,其中1个产品的组合。在GUI中,他拥有超过24000种产品。我不知道你如何避免这种情况。如果每个属性组合都有不同的金额,那么必须有人在某个地方输入每个金额。也许我有一个解决方案。如果我将属性表分解,并创建类似
黑色XL
蓝色S
的条目。然后我可以将amount保存在ProductProperties表中<代码>产品id,属性id,金额
平均产品id 1,属性1为
Product1,黑色XL
。。仅作为示例。我明天试试,现在是睡觉时间了呵呵;)谢谢你的意见
select p.productId, amount, group_concat(pr.name)
from product p join property pr on p.productId = pr.productId
group by p.productId, amount
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