gpt4 book ai didi

sql - 如何在sql server中连接一对多记录

转载 作者:行者123 更新时间:2023-12-02 23:05:03 26 4
gpt4 key购买 nike

我在sql server中有两个表UserUserRolesUser 表包含基本的用户信息,例如UserId,Name 等和 UserRoles 具有诸如 UserId,RoleName 之类的列。这两个表之间存在一对多关系,即一个用户可以拥有多个角色。

用户

UserId  Name
1 A
2 B
3 C

用户角色

UserId  Rolename
1 Manager
1 Event Organiser
2 Supervisor
2 Employee
2 Some otherRole

我需要在 sql 中编写一个查询,它将返回如下所示。即,将一对多记录连接成一个字符串

UserId  Roles
1 Manager,Event Organiser
2 Supervisor,Employee,Some otherRole

最佳答案

你必须使用下面2个SQL函数

<强> XML Path - 用于串联

<强> Stuff 用于逗号分隔

select UserId,
stuff((select ',' + t2.Rolename
from UserRoles t2 where t1.UserId = t2.UserId
for xml path('')),1,1,'') Roles
from UserRoles t1
group by UserId

<强> SQL Fiddle

关于sql - 如何在sql server中连接一对多记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20656240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com