我目前正在研究一款小型RPG遊戲,但遇到了一個小問題。mysql select查詢與同一個表的多個group_concat
單元表
UnitID | Name
------ | ------
1 | Bob
裝備表1
UnitID | EquipTypeID
------ | -----------
1 | 5
1 | 8
裝備表2
UnitID | EquipTypeID
------ | -----------
1 | 10
1 | 12
說,如果現在我瓦特anted使單元的概述,列出所有可能的equipable類型的插槽,比方說像這樣
UnitID | Name | EquipSlot1 | EquipSlot2
------ | ---- | ---------- | ----------
1 | Bob | 5, 8 | 10, 12
我知道我可以使用類似GROUP_CONCAT成類似...
SELECT ut.UnitID, ut.Name,
group_concat(DISTINCT et1.equipTypeID) as EquipSlot1,
group_concat(DISTINCT et2.equipTypeID) as EquipSlot2
FROM unitTable as ut
LEFT JOIN equipTable1 as et1
ON ut.UnitID = et1.UnitID
LEFT JOIN equipTable2 as et2
ON ut.UnitID = et2.UnitID
然而,什麼我其實想法是,如果可能的話,如果我可以只是單純地使它像...
裝備表(與其他列的兩個表結合在一起,表示插槽)
UnitID | EquipTypeID | EquipSlot
------ | ----------- | ---------
1 | 5 | 1
1 | 8 | 1
1 | 10 | 2
1 | 12 | 2
但是,如果我以這種方式構建,我將如何實現相同的結果?
但是你仍然在使用兩個表格,我問是否可以使用一個表格。 –
當你有兩個數據時,你如何使用一張表?我的意思是equiptTable1和equiptTable2都有數據,這些數據是有效的,那麼我們如何從選擇中闡明它們呢? – BhandariS
如我的示例中所示,NEW equip表中有一個新列'EquipSlot',用於判斷equiptype是否應進入equiplot1或equipslot2的結果 –