有3张桌子
物品
itemID PK
存货
quantity charID FK itemID FK
人物
charID PK charName
.
ITEM 1---many INVENTORY 8----1 CHARACTER
我想找到堆叠在角色库存中的前 10 个堆叠最多的物品,以及谁在他们的库存中堆叠了这个物品。所以最后它会像 itemID 1 有 4 个堆栈,这些 charID 有项目, itemID 2 有 3 个堆栈,这些 charID 有项目。在一张桌子上。
在尝试这样做一段时间后,这是我目前所处的位置
SELECT COUNT(INVENTORY.itemID) as Stacks, ITEM.itemID, CHARACTERS.charName
FROM INVENTORY
INNER JOIN ITEM
ON INVENTORY.itemID = ITEM.itemID
INNER JOIN CHARACTERS
ON INVENTORY.charID = CHARACTERS.charID
WHERE INVENTORY.quantity>1
GROUP BY ITEM.itemID, CHARACTERS.charName
ORDER BY Stacks DESC
GO
我不是在单行中获取类似的数据,而是将其拆分为每个字符的一堆行。例如,表头是
Stacks | ITEMID | charName
1 | 1 | Char1
1 | 1 | Char2
但我想要的是
Stacks | ITEMID | charName
2 | 1 | Char1,Char2
欢迎任何帮助谢谢:)。如果我的问题格式不符合标准,请留下我如何改进的评论。