尝试使用单个查询执行此操作,但希望获取有权执行x操作的所有用户的列表。这涉及用户表和权限表。但它看起来像任何联接我用不关心有关where语句(因为用户通常必须在表中的另一个许可)Mysql加入,检查用户是否有权限
SELECT DISTINCT `u`.*
FROM (`system_users` AS u)
JOIN `system_user_permissions` AS p ON `u`.`id` = `p`.`user`
WHERE `p`.`permission` != 2
AND `p`.`permission` != 3
我有大约3900用户,我应该得到约2000个用户谁不依赖要么许可身份证2或3.但仍然得到3900问题是因为用户也可能被绑定到权限1,5,6 ...他们仍然被列入名单后,它们在一起。
有什么建议吗?
更新查询,仍然没有运气,虽然。如果我输出的“权限”为每一个我没有得到2或3,仍列出的用户可能具有的权限有
SELECT DISTINCT `u`.*, `p`.`permission`
FROM (`system_users` AS u)
INNER JOIN `system_user_permissions` AS p ON `u`.`id` = `p`.`user`
WHERE `p`.`permission` NOT IN (2, 3)
这奏效了:
SELECT * FROM system_users AS u
WHERE NOT EXISTS(
SELECT 1 FROM system_user_permissions AS p
WHERE u.id = p.user
AND p.permission IN (2,3)
)
从查询中写出你想要的输出 – AlfredoVR 2011-12-30 16:48:01
我只需要用户列表。只需加入即可使用功能 – kilrizzy 2011-12-30 16:51:37
为我们提供示例输出。与表格结构一样,如果表格不太大。 – 2011-12-30 17:16:36