如果这个问题已经解决了,我很抱歉,但我不知道如何正确地说出问题或者我应该搜索什么。
所以我有两张桌子:
基
id | name
成员
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;
我希望你理解我的问题,我很难找到合适的问题。随意问。
编辑:两个用户都应该是该组的成员。
答案 0 :(得分:1)
如果我理解得很好,你需要两个用户都是成员的小组吗?
类似的东西:
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;
答案 1 :(得分:0)
只需将上一个AND
替换为OR
,然后将user_id
的测试放入(
,就像这样:
SELECT groups.id
FROM groups, memberships
WHERE groups.id = memberships.group_id
AND (memberships.user_id = 1 OR memberships.user_id = 2);
答案 2 :(得分:0)
试试这个:
SELECT *
FROM groups g
INNER JOIN memberships m
ON m.group_id = g.id
WHERE m.user_id = '1'
OR m.user_id = '2'