我还没有填充数据库,我仍然在设计它。我正在做的是建立一个基于游戏的数据库,我正在构建一个程序来抓取一些数据来填充数据库。那么,这是数据库的布局方式。
Item Table
id, name, image
Stat Table
id, item_id, stat_name, stat_value
我将其中一个统计名称设置为Class
,并将统计值设置为Warrior
。我希望能够选择所有具有战士属性的项目。由于我对SQL的了解有限,这似乎需要多次查询,但我知道我错了。
我对加入并不是很好,而且我认为这是我必须要做的事情,但同样,SQL也不是很好。任何帮助将不胜感激。此外,stat_name
和stat_value都必须是查询。所以stat_name='Class' stat_value='Warrior'
。
答案 0 :(得分:1)
SELECT DISTINCT i.*
FROM Item i
JOIN Stat s
ON i.id = s.id
WHERE s.stat_name = 'Class'
AND s.stat_value = 'Warrior'
如果我已经解释了你的数据库想法,这应该有用。
我想说我认为你的数据库设计存在缺陷,你的Stat表会变得臃肿,查询起来很麻烦。你考虑过每个班级的桌子吗?
答案 1 :(得分:1)
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
答案 2 :(得分:0)
如果我跟随,则不是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'