Mysql查询-根据不同表中的列名获取行值
我有两张桌子。一个用于库存,另一个用于库存项目信息 信息表包含更多关于网站的信息,我想将所有信息保存在一个表中Mysql查询-根据不同表中的列名获取行值,mysql,Mysql,我有两张桌子。一个用于库存,另一个用于库存项目信息 信息表包含更多关于网站的信息,我想将所有信息保存在一个表中 INVENTORY TABLE UserID--ITEM1--ITEM2--ITEM3 key1--qty--qty--qty key2--qty--qty--qty 表2结构“信息表” 我试图通过一个查询获取CLASS1行,其中ItemID与Table1中的列名匹配,前提是数量大于0且键=$a 生成此查询的任何帮助都将是一个救命稻草。我不想重做清单架构。谢谢你的关注 您应该真
INVENTORY TABLE
UserID--ITEM1--ITEM2--ITEM3
key1--qty--qty--qty
key2--qty--qty--qty
表2结构“信息表”
我试图通过一个查询获取CLASS1
行,其中ItemID
与Table1
中的列名匹配,前提是数量大于0且键=$a
生成此查询的任何帮助都将是一个救命稻草。我不想重做清单架构。谢谢你的关注 您应该真正规范化您的模式。如果您需要匹配商品ID,它们应该是值,而不是列名,这样您就可以加入它们。这是一个特定于用户的库存系统。每个用户可能有任意数量的庞大项目列表。我无法想象一个不同的2桌设计。也许我不能用这种方式调用查询。我的库存列表将不断增长。库存表应具有列
userID
,itemID
,quantity
。如果库存表具有userID,则每个用户将只拥有数据库中每个项目的副本。复制这么多数据不是很浪费吗?每个用户只会有属于他们的项目。库存表会破坏用户ID。我可以把info.userID换成inventory.userID吗?
SELECT info.*
FROM info
JOIN Inventory ON (ItemID = 'ITEM1' AND ITEM1 > 0)
OR (ItemID = 'ITEM2' AND ITEM2 > 0)
OR (ItemID = 'ITEM3' AND ITEM3 > 0)
WHERE info.ItemClass = 'CLASS1'
AND Inventory.userID = $a
SELECT info.*
FROM info
JOIN Inventory ON (ItemID = 'ITEM1' AND ITEM1 > 0)
OR (ItemID = 'ITEM2' AND ITEM2 > 0)
OR (ItemID = 'ITEM3' AND ITEM3 > 0)
WHERE info.ItemClass = 'CLASS1'
AND Inventory.userID = $a