Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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
Php 根据另一个表中的值从一个表中选择值_Php_Android_Mysql_Sql_Json - Fatal编程技术网

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'