【发布时间】:2015-08-05 10:54:31
【问题描述】:
我开始学习 SQL,学习视图。 我想知道是否可以在一个视图中连接三个表,其中一些列将基于这些表中的行。
我有三张桌子:
角色:
Id | Name | PermissionId
1 | Admin | 1
2 | Staff | 2
角色权限:
Id | RoleId | PermissionId
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 2 | 1
5 | 2 | 2 <- staff doesn't have permission 3
权限:
Id | Name
1 | Perm1
2 | Perm2
3 | Perm3
.
. (not fixed number of permissions)
我想创建这样的视图:
Id (of role) | Name | Perm1 | Perm2 | Perm3 ... (not fixed number of columns)
1 | Admin | True | True | True
2 | Staff | True | True | False
有可能吗?
【问题讨论】:
-
请用您正在使用的数据库标记您的问题。此外,包括您尝试过的示例代码也很有帮助。
-
当然,您可以旋转第二个表,但请注意,如果您拥有任意数量的权限/角色,您将获得任意数量的列
-
这绝对是一个重复的问题,所以你需要在 [sql][pivot] 组合上进行一些搜索并先尝试一下。 stackoverflow.com/questions/tagged/sql+pivot
-
谢谢。现在我知道我应该寻找什么了
标签: sql sql-server view pivot