如何在SQL中将“OR”关键字的OR逻辑更改为AND?

时间:2014-04-03 09:55:08

标签: sql oracle

当我使用in关键字进行查询时,如下所示:

select * from users_roles where user_grp in ('SUPPORTER', 'MEMBER', 'VIP');

在这个SQL中,我要说的是选择那些用户组的 one 中的用户。所以这是一个OR逻辑。

但是我可以将OR逻辑更改为AND以便我选择列表中所有或项目中的记录吗?

表结构只是使用一对多关系,其中一个用户可以在多个组中,因此users_roles表中可能有多个同一用户的行具有不同的{{1 }}。

那么,我如何编写SQL以便选择所有用户组中的用户?

1 个答案:

答案 0 :(得分:1)

您需要应用分组依据,然后选择在应用过滤器后出现三次的数据

select user_id -- or user_name, whatever
  from users 
 where user_grp in ('SUPPORTER', 'MEMBER', 'VIP')
 group by user_id
having count(distinct user_grp) = 3;