我需要返回来自同一个表的两个或多个查询中出现的值。在这里感觉有点像菜鸟,但却看不到树木的木材。
我有一个分配给不同组的用户表。我只需要返回出现在所有请求组中的用户:
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个问题,但感谢任何指示。
答案 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