繁体   English   中英

MySQL查询和优化数据库

[英]MySQL Query and optimizing database

我有一个上学需要做的项目。 这是一个基于Javafx的基于munchkin的游戏(棋盘游戏)。

我们有一个英雄,这个英雄将击败房间中的所有怪物,每个怪物都捍卫着一件宝藏(我将其视为怪物的战利品,就像在mmorpg中一样)。 现在我也不确定怪物和宝藏之间的联系。 每个宝藏都有0或1个怪物。 每个怪物至少都有一个宝藏,也可以是多个。 老师说在我的情况下为此使用一个额外的表(Treasure_has_Monsters)。 我不确定引用是否正确...

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

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

问题:

  • 有没有办法在一个查询中做到这一点?
  • 珍宝和怪兽之间的引用可以吗?

您可以尝试进行以下简单查询:

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

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

select t.* from Treasures t
join Treasures_has_Monsters tm on tm.Treasure_id=t.id
where Monster_id=?

哪里? 是您要列出宝藏的怪物ID。

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

SELECT * FROM Treasures
WHERE id IN (SELECT treasure_id from Treasures_has_Monsters
             WHERE monsterid = <MID>);

<MID>替换为要获取的怪物ID

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM