0

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

我希望我解释得足够好。

谢谢,鲍勃

4

3 回答 3

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

如果用户仅在一个组中,则它必须是 All Users 组,并且仅列出这些用户。

于 2013-11-14T19:11:42.967 回答
0

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

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

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

于 2013-11-14T19:10:09.017 回答
0

你有三张桌子,说:

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

创建新用户时,应自动在 中创建记录,将和tblUserGroup链接起来。useridgroupid

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

于 2013-11-14T19:19:11.417 回答