单个表上的内部查询

Ant*_*ony 1 sql oracle

我的Oracle DB中有一个表,其中存储了数据

ROLE_ID | USER_ID
------------------
 14     | USER A
 15     | USER A
 11     | USER B
 13     | USER A
 15     | USER B
 12     | USER C
 15     | USER C
Run Code Online (Sandbox Code Playgroud)

我想获得所有包含13和15 的USER_IDs ROLE_ID.根据上面的例子,我应该只回来USER_A.

如果我写下面的查询

select * from table where ROLE_ID in (13,15); 然后我也得到了其他用户.

如何修改查询以便我才能回来 USER A

Ben*_*Ben 7

你正在寻找......

select user_id
  from my_table
 where role_id in (13,15)
 group by user_id.
having count(distinct role_id) = 2
Run Code Online (Sandbox Code Playgroud)

你保证,通过使用不同的,如果有说的两个用户A的,你仍然可以得到一个地方有两个role_idS ^