查找不是特定组成员的用户

时间:2013-11-14 19:05:05

标签: mysql sql ms-access

我有一个用户表和一个组表以及一个将用户与组相关联的表。默认组称为“所有用户”。所有新用户都被放置在此组中。然后将它们链接到更具体的群体,如销售或购买等,但他们也会留在“所有用户”中。 我想查询“所有用户”组中的所有用户,但不是任何其他组的成员。

我希望我解释得很好。

谢谢, 鲍勃

3 个答案:

答案 0 :(得分:1)

SELECT userid, count(*) group_count
FROM user_groups
GROUP BY userid
HAVING group_count = 1

如果用户只在一个组中,则它必须是“所有用户”组,并且仅列出这些用户。

答案 1 :(得分:0)

假设您的名为AllUsers的表具有每个名为id的用户的唯一ID,并且您的Group表具有链接到AllUsers.id的外键userId。

SELECT * FROM AllUsers WHERE AllUsers.id!= userId;

如果我理解你的问题,应该这样做。

答案 2 :(得分:0)

你有三个表,比如说:

tblUser: userid, username
tblgroup: groupid, groupname
tblUserGroup: fkuserid, fkgroupid

创建新用户时,您应自动在tblUserGroup创建一条记录,并将useridgroupid相关联。

当用户添加新群组时,您只需要在tblUserGroup中添加一个具有相同userid和新groupid的记录。您不需要删除第一条记录,因为它们现在都在两个组中。