2

我需要返回出现在同一个表中的两个或多个查询中的值。在这里感觉有点像菜鸟,但只是看不到树木的树林。

我有一个分配给不同组的用户表。我只需要返回出现在所有请求组中的用户:

User   Group
frank  1
Jane   2
Tom    2
frank  2
Jane   1
Tom    3

这是我需要输出的:

Result for Group 1 & 2:
frank
Jane

Result for Group 2 & 3:
Jane
Tom

似乎是一个非常 101 的问题,但感谢任何指针。

4

2 回答 2

3
select user
from users
where group_id in (1,2)
group by user
having count(*) = 2;

您需要将having count(*) = 2条件调整为所需的组数。

如果一个用户可以多次分配到同一个组,则需要考虑 Madhivanan 的评论:

select user
from users
where group_id in (1,2)
group by user
having count(distinct group_id) = 2;

(我使用列名group_id是因为group是保留字,应该用作列名)。

于 2012-07-18T10:44:50.420 回答
3
select user from table
where group in (1,2)
group by user
having count(distinct group)=2
于 2012-07-18T10:45:48.817 回答