簡體   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