Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过查询从组中访问Rolename?_C#_Mysql_Sql_Asp.net_Sql Server - Fatal编程技术网

C# 如何通过查询从组中访问Rolename?

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

我们有两个表站点角色和站点角色模块。在SiteRoleModule中,我们基于ModuleID访问单行RoleID

在上图中,我们得到了输出。我们需要Rolename而不是RoleID。站点角色表中存在RoleID和Rolename

在上图中,我们有roleid1-administrator,2-superAdmin,3-admin

我们需要图像1中的输出而不是roleid1 2 3我们需要作为管理员superAdmin admin输出

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