Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql查询-根据不同表中的列名获取行值_Mysql - Fatal编程技术网

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