我有这个查询:
SELECT DISTINCT
u.id,
u.name,
n.network_id,
n.perm
FROM users as u RIGHT OUTER JOIN
nets_permissions as n ON u.id = n.user_id AND n.perm<> 3
WHERE u.id!=3
结果是这样的:
id name network_id perm
1 Luca Niccolini 9124823324095 1
2 Irene Pippo 9124823324095 0
2 Irene Pippo 1234567812345678124 1
现在我希望查询的结果是:
id name network_id perm
1 Luca Niccolini 9124823324095 1
2 Irene Pippo 9124823324095 0
事实上,我想将网络上的权限授予某些用户。这个用户已经可以在网络上拥有权限,也可以在其他网络上。因此,在这种情况下,用户 Luca 仅在网络 9124823324095 上具有权限,但用户 Irene 在两个不同的网络上具有两个权限。我想授予网络 9124823324095 的权限,所以我不想要第三条记录。
但是我无法使用网络 ID 进行过滤,因为我可以拥有一个对其他网络具有权限的用户,但在我的网络上却没有。
换句话说,我希望-对于在查询中有两条或更多记录的用户,我只能获取我的网络的记录-对于只有一条记录的用户,我可以获取该记录。
很难解释。感谢您的帮助!