【发布时间】:2020-02-27 02:07:54
【问题描述】:
我有一个 branch_user_permission 的数据库表,它有 3 个表列 [branch_id, permission_id, user_id]
这是数据库的示例数据
Sample Data of Branch Permission User
我只想映射或获取所有权限(permission_id)与其他分支(branch_id)相同的所有用户
例子:
[branch_id][permission_id][user_id]
[1][2][1]
[1][3][1]
[1][5][1]
[1][6][1]
[2][2][2]
[2][3][2]
[2][5][2]
[2][6][2]
[3][2][3]
[3][3][3]
[3][6][3]
[4][2][5]
[4][3][5]
[4][5][5]
[4][6][5]
因此,我将获得所有其他分支的所有权限都相同的所有 user_id 的预期输出:
- 数组 (1,2,5)
【问题讨论】:
-
你怎么知道数组 (1,2,5) 是正确的而不是数组 (3)?我认为您需要以某种方式建立预期权限集,或者正确答案只是具有相同权限
[[1,2,5], [3]]的一组 ID -
3 不包括在内,因为 user_id 为 3 的 permission_id 仅为 [2,3,6]。与 (1,2,5) 的 user_id 不同,permission_id 是 [2,3,5,6]
-
我知道为什么它不包含在 1,2,5 中,但我仍然不知道为什么它不是正确的结果。是因为没有其他用户拥有这样的权限吗?如果其他用户拥有 2,3,6 个权限或多个组中相同数量的用户拥有与其他用户组不同的相同权限集,那么正确的结果是什么?
-
获得用户的主要目标是我想获得与其他分支具有相同权限的所有用户。例如我有权限 2,3,6 我想检查其他分支是否也有权限 2,3,6。
-
你说“其他分支”,所以你有预先确定的分支 ID(因此它的权限集)对吗?
标签: php sql optimization