如果这个问题已经解决,我很抱歉,但我不知道如何正确表达我的问题或我应该搜索什么。
所以我有 2 个表:
群组
id | name
成员(member)资格
id | user_id | group_id
我想要做的是找到 id 为 1 的用户所属的所有组以及 id 为 2 的用户所属的所有组。 显然这是行不通的:
SELECT groups.id FROM groups, memberships WHERE groups.id = memberships.group_id AND memberships.user_id = 1 AND memberships.user_id = 2;
我希望您能理解我的问题,我无法找到合适的词语来解决这个问题。欢迎询问。
编辑:两个用户都应该是该组的成员。
最佳答案
如果我没理解错的话,您需要两个用户都是成员的群组吗?
类似于:
SELECT g1.id
FROM groups g1, memberships m1, groups g2, memberships m2
WHERE m1.group_id = g1.id AND m1.user_id = 1
AND m2.group_id = g2.id AND m2.user_id = 2
AND g1.group_id = g2.group_id;
关于MySQL 选择在其他表中有两个匹配的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18726462/