可能重复:Concatenate row values T-SQL
我有三张桌子。项目,组织和Items_Organizations联结表,它提供了另外两个之间的多对多关系。
项目表包括“组织”列,我希望存储从每个项目的联结表中收到的值;将每个组织与逗号或类似组合在一起。
据我所知,在列中存储多个值并不是最佳做法,但是我需要通过一些处理程序& amp;显示每个项目的组织。没有比在一列中存储多个值更好的想法。
所以我在后端尝试做的是使用类似的东西更新'组织'列信息;
接收特定项目的组织:
SELECT OrganizationName FROM organizations
JOIN organizations ON organizations.organizationID =
Items_Organizations.organizationID
WHERE Items_Organizations.item_ID = '1'
尝试使用UPDATE
使用上述查询的结果表更新列'组织'UPDATE items SET organizations = ?
制定问题非常困难。我希望我已经说清楚了。
答案 0 :(得分:0)
试试这个:
UPDATE i
SET i.organizations =
STUFF((
SELECT ', ' + o.OrganizationName
FROM Items_Organizations AS io
INNER JOIN organizations AS o ON o.organizationID = io.organizationID
WHERE io.Item_Id = i.Item_Id AND io.Item_Id = 1
FOR XML PATH(''))
,1,2,'')
FROM items AS i
WHERE i.Item_id = 1;
请在此处查看: