我的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
你正在寻找......
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 ^