我正在尝试构建一个可以在整个系统中使用的视图,该视图返回一个标准化的用户列表及其访问权限。
Table: Users
UserID UserName IsAdmin
----------------------------------
1 John 0
2 Jane 1
3 Mary 0
Table: Clients
ClientID ParentClientID ClientName
----------------------------------
1 NULL Pepsico
2 1 Pizza Hut
3 1 Taco Bell
4 1 KFC
5 NULL McDonalds
Table: UsersInClients
UserID ClientID
----------------------------------
1 2
1 3
2 1
3 5
我想要的输出:
UserID ClientID
----------------------------------
1 2 --User 1 & 3 are not admins so list only includes IDs in UsersInClients table.
1 3
2 1 --If Users.IsAdmin = 1, it should return
2 2 --all parent client and all child clients,
2 3 --one row per client like this.
2 4
3 5
我能想到的唯一方法是使用 CTE 和临时表、游标等,但我希望这可能是一个视图,以便我可以在查询中加入它。这可以做到吗?
多谢你们