我有一个用户表和一个组表以及一个将用户与组相关联的表。默认组称为“所有用户”。所有新用户都被放置在此组中。然后将它们链接到更具体的群体,如销售或购买等,但他们也会留在“所有用户”中。 我想查询“所有用户”组中的所有用户,但不是任何其他组的成员。
我希望我解释得很好。
谢谢, 鲍勃
答案 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
创建一条记录,并将userid
和groupid
相关联。
当用户添加新群组时,您只需要在tblUserGroup
中添加一个具有相同userid
和新groupid
的记录。您不需要删除第一条记录,因为它们现在都在两个组中。