SQL从多个查询返回匹配项

时间:2012-07-18 10:41:01

标签: sql vbscript

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

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

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个问题,但感谢任何指示。

2 个答案:

答案 0 :(得分: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是一个保留字,应该用作列名。)

答案 1 :(得分:3)

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