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