Asp.net 如何查询用户名多次出现的数据及其权限MS Sql Server?
您好,我正在尝试获取用户id、名称、密码及其权限,但它多次列出用户名、id、密码如何获取用户名、id、密码及其权限我的查询是Asp.net 如何查询用户名多次出现的数据及其权限MS Sql Server?,asp.net,sql-server,sql-server-2008,Asp.net,Sql Server,Sql Server 2008,您好,我正在尝试获取用户id、名称、密码及其权限,但它多次列出用户名、id、密码如何获取用户名、id、密码及其权限我的查询是 Select U.User_Id,U.User_Name,U.User_Password, PL.PermissionName from [Inspection].[dbo].[User] U right join [Inspection].[dbo].[UsersPermission] UP on U.User_Id=UP.User_Id inner jo
Select U.User_Id,U.User_Name,U.User_Password, PL.PermissionName from [Inspection].[dbo].[User] U
right join [Inspection].[dbo].[UsersPermission] UP
on U.User_Id=UP.User_Id inner join PermissionsList PL
on up.PermissionID=PL.PermissionID
where U.User_Id='2';
结果是,
User_Id User_Name User_Password PermissionName
2 John 123456 View
2 John 123456 Insert
希望得到您的建议,提前谢谢 有两种解决方案:
Select U.User_Id,U.User_Name,U.User_Password
,[permissions]=
STUFF((SELECT ', ' + PermissionName
FROM [UsersPermission] iup
inner join PermissionsList iPL on iup.PermissionID=iPL.PermissionID
WHERE iup.User_Id = u.User_Id
order by PermissionName
FOR XML PATH('')), 1, 1, '')
from [User] U
where U.User_Id='2';
我不能用子查询在一个查询中完成它吗?您仍然会得到多行。这就是SQL的工作方式——不要反对:)保持简单