所以我有一张类似下面的表格。
+----+----------+---------+
| ID | group_id | user_id |
+----+----------+---------+
| 1 | 10 | 9 |
| 2 | 20 | 8 |
| 3 | 10 | 7 |
| 4 | 10 | 6 |
| 5 | 20 | 5 |
+----+----------+---------+
我有一组用户ID [9,7,6]
,我想获得所有ID在同一组中的组ID?
我当前的查询:
SELECT group_id FROM group_user WHERE user_id IN (9,7,6) GROUP BY group_id
请记住,我并不过分熟悉SQL查询。
由于
修改
我已经打开了一个更详细和我的目标的新问题。
答案 0 :(得分:1)
您可以使用条件聚合来查找group_id,其中包含与之关联的必需user_id。
SELECT group_id
FROM group_user
group by group_id
having sum(case when user_id IN (9,7,6) then 1 else 0 end) = 3
答案 1 :(得分:0)
您的查询应该是:
SELECT DISTINCT(group_id) FROM group_user WHERE user_id IN (9,7,6)
答案 2 :(得分:0)
SELECT group_id
FROM group_user
WHERE user_id IN (9,7,6)
GROUP BY group_id
HAVING count(DISTINCT user_id) = 3
AND count(DISTINCT group_id) = 1
确保所有3个ID都在同一个group_id中,并且它们不在任何其他组中。