首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL查询与优化数据库

MySQL查询与优化数据库
EN

Stack Overflow用户
提问于 2014-02-28 13:16:47
回答 3查看 74关注 0票数 0

我要为学校做一个项目。这是一款基于munchkin (棋盘游戏)的Javafx游戏。

我们有一个英雄,这个英雄会在一个房间里打败怪物,每个怪物都会保护一个宝藏(我把它看作是怪物的战利品,就像在mmorpg中一样)。现在我也不确定怪物和宝藏之间的联系。每个宝藏都有0或1个怪物。每个怪物至少有一个宝藏,也可以是多重的。老师说在我的情况下使用一个额外的桌子(Treasure_has_Monsters)。但我不确定引用是否正确.

目前我的数据库: 数据库设计

现在我遇到的问题如下。我需要从怪物拥有的所有宝藏中得到一份清单。我可以查询treasure_has_monster表,获取所有的id的宝藏,然后创建一个查询,以获得所有的宝藏与id。

问题:

  • 有办法在一个查询中做到这一点吗?
  • 金银财宝和怪物之间的参考可以吗?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-28 13:26:12

根据您的架构,您可以尝试:

代码语言:javascript
复制
select t.* from Treasures t
join Treasures_has_Monsters tm on tm.Treasure_id=t.id
where Monster_id=?

哪里?是你想列出宝藏的怪物。

票数 0
EN

Stack Overflow用户

发布于 2014-02-28 13:24:42

您可以尝试做一个简单的查询,例如:

代码语言:javascript
复制
SELECT t.name
FROM treasure_has_monster thm
INNER JOIN trasures t ON (thm.trasure_id = t.id)
WHERE thm.monster_id = YOUR_MONSTER_ID
票数 1
EN

Stack Overflow用户

发布于 2014-02-28 13:28:54

没有理由将两个表连接在一起。您可以使用一个简单的内部查询。

代码语言:javascript
复制
SELECT * FROM Treasures
WHERE id IN (SELECT treasure_id from Treasures_has_Monsters
             WHERE monsterid = <MID>);

<MID>替换为您想要得到的怪物id

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22096259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档