【发布时间】:2013-12-16 05:42:42
【问题描述】:
我目前正在尝试将 MySQL 中的 group_concat 函数模拟为 MSSQL。我遵循了here 和here 中的代码格式。问题是,当我尝试执行查询时,我的列 RoleID 收到消息 Ambiguous column name。这是我的查询:
select UserName, RoleID from tb_UserInRoles
cross apply(
select RoleName from tb_Roles
where tb_UserInRoles.RoleID = tb_Roles.RoleID
for XML Path('')
) fxMerge (RoleID) group by UserName, RoleID
我想知道为什么这种特殊的代码格式会显示Ambiguous column name 错误消息。我需要使这个查询工作并理解它。提前感谢您的帮助。
我打算在多对多关系表中使用它,其中系统的用户可以有多个角色,如下所示:
| User | Role |
|--------|---------|
| JamesP | Maker |
| JamesP | Approver|
| JamesP | Admin |
我希望结果查询是这样的:
| User | Role |
|--------|--------------------------|
| JamesP | Maker, Approver, Admin |
【问题讨论】:
标签: sql sql-server string-aggregation