C# 如何通过查询从组中访问Rolename?
我们有两个表站点角色和站点角色模块。在SiteRoleModule中,我们基于ModuleID访问单行RoleID 在上图中,我们得到了输出。我们需要Rolename而不是RoleID。站点角色表中存在RoleID和Rolename 在上图中,我们有roleid1-administrator,2-superAdmin,3-admin 我们需要图像1中的输出而不是roleid1 2 3我们需要作为管理员superAdmin admin输出C# 如何通过查询从组中访问Rolename?,c#,mysql,sql,asp.net,sql-server,C#,Mysql,Sql,Asp.net,Sql Server,我们有两个表站点角色和站点角色模块。在SiteRoleModule中,我们基于ModuleID访问单行RoleID 在上图中,我们得到了输出。我们需要Rolename而不是RoleID。站点角色表中存在RoleID和Rolename 在上图中,我们有roleid1-administrator,2-superAdmin,3-admin 我们需要图像1中的输出而不是roleid1 2 3我们需要作为管理员superAdmin admin输出 ALTER PROCEDURE [dbo].[MEDEIL
ALTER PROCEDURE [dbo].[MEDEIL_SiteRoleModules_SelectOne]
@ModuleID int
AS
SELECT
SRM.RoleID,
SR.RoleName
FROM
[dbo].[SiteRoleModules] SRM
INNER JOIN [dbo].[SiteRoles] SR
ON SR.RoleID = SRM.RoleID
WHERE ModuleID = 1
只需使用join即可执行此操作
select t1.ModuleID,RoleName=( SELECT s1.RoleName AS [data()]
FROM SiteRoleModules t2 inner join SiteRoles s1 ON t2.RoleID = s1.RoleID
where t2.ModuleID = t1.ModuleID group by s1.RoleName FOR XML PATH('')) from SiteRoleModules t1 GROUP BY ModuleID
删除图像并添加示例表数据和预期的文本输出fomat@Wanderer选中ITI如果我将传递ModuleID值1,则应显示相应的RoleName值,但在这里我传递ModuleID中的值1,它将显示所有ModuleID。如何更改我的查询。不,不应该在子查询中将常量值作为ModuleId传递。将where子句置于主查询中。请参见上图,我只需要显示一个值您的问题已更改。。。在查询中放置GROUPBY after where子句。group by SRM.RoleId,SR.RoleName是的先生我需要显示我将传递ModuleID值1然后相应的RoleName值应显示如何在查询中更改
select t1.ModuleID,RoleName=( SELECT s1.RoleName AS [data()]
FROM SiteRoleModules t2 inner join SiteRoles s1 ON t2.RoleID = s1.RoleID
where t2.ModuleID = t1.ModuleID group by s1.RoleName FOR XML PATH('')) from SiteRoleModules t1 GROUP BY ModuleID