Php 根据另一个表中的值从一个表中选择值
我还没有填充我的数据库,我还在设计过程中。我正在做的是基于一个游戏制作一个数据库,我正在构建一个程序来爬过一些数据来填充数据库。下面是数据库的布局Php 根据另一个表中的值从一个表中选择值,php,android,mysql,sql,json,Php,Android,Mysql,Sql,Json,我还没有填充我的数据库,我还在设计过程中。我正在做的是基于一个游戏制作一个数据库,我正在构建一个程序来爬过一些数据来填充数据库。下面是数据库的布局 Item Table id, name, image Stat Table id, item_id, stat_name, stat_value 我有一个stat名称设置为Class,stat值设置为Warrior。我想能够选择所有有战士属性的物品。由于我对SQL的了解有限,这似乎需要多个查询,但我知道我错了 我对连接不太擅长,我认为这是我必须做
Item Table
id, name, image
Stat Table
id, item_id, stat_name, stat_value
我有一个stat名称设置为Class
,stat值设置为Warrior
。我想能够选择所有有战士属性的物品。由于我对SQL的了解有限,这似乎需要多个查询,但我知道我错了
我对连接不太擅长,我认为这是我必须做的,但同样,对SQL也不太擅长。任何帮助都将不胜感激。此外,
stat\u name
和stat\u值都必须是查询。所以stat\u name='Class'stat\u value='Warrior'
如果我跟随,我不会100%,但我会尝试一下。那么您想从Stat表加载行并加入Item表
SELECT * FROM Stat
LEFT JOIN Item
ON Item.id = Stat.item_id
WHERE Stat.stat_name='Class'
AND Stat.stat_value='Warrior'
如果我解释了你的数据库想法,这应该行得通
我想说的是,我认为您的数据库设计有缺陷,您的统计表将会膨胀,查询起来会很痛苦。你考虑过每节课都有一张桌子吗
select i.*
from item_table i
inner join stat_table s
on i.id = s.item_id
where s.stat_name = 'Class'
and s.stat_value = 'Warrior'
如果您不需要id,只需将
i.*
替换为i.name,i.image
如果在提取数据时有办法区分值,我会这样做,但不幸的是,数据的来源也不是很好。也许一旦所有的数据都被提取出来,我会制作另一个程序来完善它
select i.*
from item_table i
inner join stat_table s
on i.id = s.item_id
where s.stat_name = 'Class'
and s.stat_value = 'Warrior'