当前位置:  开发笔记 > 数据库 > 正文

SQL查询帮助桥表

如何解决《SQL查询帮助桥表》经验,为你挑选了0个好方法。

我正在使用现有数据库并尝试编写SQL查询以获取所有帐户信息,包括权限级别.这是用于安全审计.我们希望以可读的方式转储所有这些信息,以便于比较.我的问题是有一个权限的桥/链接表,所以每个用户有多个记录.我希望在一行中获得一个用户的所有权限.这是一个例子:

Table_User:
UserId   UserName
1        John
2        Joe
3        James

Table_UserPermissions:
UserId   PermissionId   Rights
1        10             1
1        11             2
1        12             3
2        11             2
2        12             3
3        10             2

PermissionID链接到一个具有Permission名称及其功能的表.对象就像1 =视图,2 =修改等.

我从用户1的基本查询中得到的是:

UserId UserName PermissionId Rights
1      John     10           1
1      John     11           2
1      John     12           3

我想要的是这样的:

UserId UserName Permission1 Rights1 Permission2 Right2 Permission3 Right3
1      John     10          1       11          2      12          3

理想情况下,我希望所有用户都这样.我发现最接近的是SQL Server 2005中的Pivot函数.http: //geekswithblogs.net/lorint/archive/2006/08/04/87166.aspx 从我能说的这个问题是我需要的为每个用户命名每列,我不知道如何获得权限级别.使用真实数据,我有大约130个用户和40个不同的权限.

有没有另外一种方法只有sql,我可以做到这一点?

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有