通过分组行获取常见值的SQL查询

6
假设我有一个这样的表格:
| uid | group_id | 
-----------------
|   1 |     1    |
|   1 |     2    |
|   1 |     3    |
|   1 |     4    |
|   2 |     1    |
|   2 |     2    |
|   2 |     3    |
|   3 |     1    |
|   3 |     2    |
|   3 |     4    |
...

如何获取一组 uids 的公共 group_ids

例如:
对于 uid 1,2:公共的 group_ids 是 1、2、3。
对于 uid 1,2,3:公共的 group_ids 是 1 和 2。

1个回答

4
假设每个uidgroup_ID都是唯一的(否则需要使用distinct)。
SELECT group_ID
FROM tableName
WHERE uid IN (1,2,3)
GROUP BY group_ID
HAVING COUNT(*) = 3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接