Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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
Asp.net 如何查询用户名多次出现的数据及其权限MS Sql Server?_Asp.net_Sql Server_Sql Server 2008 - Fatal编程技术网

Asp.net 如何查询用户名多次出现的数据及其权限MS Sql Server?

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

您好,我正在尝试获取用户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 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
希望得到您的建议,提前谢谢

有两种解决方案:

  • 运行两个单独的查询。一个用于显示用户详细信息,另一个用于显示其权限
  • 处理您已有的查询
  • 这就是SQL的工作方式

    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的工作方式——不要反对:)保持简单