将多行数据添加到一个 - TSQL

时间:2015-11-09 07:33:01

标签: sql sql-server tsql

我目前正在开发一个自己的项目,它使用SQL DB来存储RPG游戏的角色信息。我正在尝试编写一个select语句来检索与用户正在使用的设备相关的信息,目前我已经:

SELECT 
CE.CharacterID, CE.EquipmentSlotID, CE.ItemID, I.ItemTypeID, I.Name, I.Image, IT.Name, IT.Description,  concat(IA.AttributeID, ' ', IA.value )
FROM 
CharacterEquipment CE INNER JOIN Item I 
ON CE.ItemID = I.ItemID
INNER JOIN ItemType IT
ON I.ItemTypeID=IT.ItemTypeID
INNER JOIN ItemAttribute IA
ON I.ItemID=IA.ItemID
WHERE CE.CharacterID = 1
ORDER BY CE.ItemID ASC;

这会返回:

enter image description here

我的问题是每个项目(ItemID)可以有多个属性(AttributeID),我希望所有这些属性出现在一行上,但我不确定如何组合结果

编辑: 对不起,伙计们,应该说,我一直在尝试使用群组连接功能,但SQL不是我的强项,所以我很费力地写它并弄清楚它是如何工作的,任何人都可以解释它的深度更深入吗?感谢

1 个答案:

答案 0 :(得分:0)

  1. 可能的解决方案是改进数据库结构并尝试非规范化。
  2. 2.但是如果您希望继续使用相同的结构,请尝试使用使用COALESCE功能进行连接 供您参考:Concatenate many rows to one