在线等,一个小的查询问题。谢谢

shermantian 2010-07-02 01:57:57
在一张用户权限表中user_role_t,有user_id(用户id),role_id(权限id)。
一个用户的id对应着多个权限id。如:
user_id role_id
001 01
001 02
001 03
001 04
001 05
001 06
001 07
002 01
002 02
002 03
002 04
003 01
003 02
003 03
要求是查询出来所有的只有权限04的用户,和只有04,11权限的用户。
谢谢拉
...全文
168 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
songminghong 2010-07-02
  • 打赏
  • 举报
回复
lz这都不会么?你是两颗星啊
zheng192004 2010-07-02
  • 打赏
  • 举报
回复
支持三楼和四楼的,O(∩_∩)O哈哈~
风过无痕1110 2010-07-02
  • 打赏
  • 举报
回复
下面的=2
04和11:

select a.user_id
from user_role_t a,
(select user_id
from user_role_t
group by user_id
having count(role_id) = 2) b
where a.user_id = b.user_id
and a.role_id in ('04','11')



风过无痕1110 2010-07-02
  • 打赏
  • 举报
回复
我比较喜欢用连接查询,用in子查询效率不高。。。
只有04的:

select a.user_id
from user_role_t a,
(select user_id
from user_role_t
group by user_id
having count(role_id) = 1) b
where a.user_id = b.user_id
and a.role_id = '04'

04和11的:

select a.user_id
from user_role_t a,
(select user_id
from user_role_t
group by user_id
having count(role_id) = 1) b
where a.user_id = b.user_id
and a.role_id in ('04','11')

dushouxian 2010-07-02
  • 打赏
  • 举报
回复
受教啦
dr_lou 2010-07-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dushouxian 的回复:]
只有权限04的用户
select user_id from user_role_t where role_id='04' and user_id in (
select user_id from user_role_t group by user_id having count(role_id) = 1);
[/Quote]

方法差不多
dr_lou 2010-07-02
  • 打赏
  • 举报
回复
只有04
select userid from ruletest
where userid in (
select userid from ruletest where ruleid = '04'
)
group by userid
having count(distinct ruleid) = 1;


04和11
select userid from ruletest
where userid in (
select userid from ruletest where ruleid in ('04','11')
)
group by userid
having count(distinct ruleid) = 2;


觉得写得很丑陋,肯定有更好的方法。
dushouxian 2010-07-02
  • 打赏
  • 举报
回复
只有权限04的用户
select user_id from user_role_t where role_id='04' and user_id in (
select user_id from user_role_t group by user_id having count(role_id) = 1);
shermantian 2010-07-02
  • 打赏
  • 举报
回复
大哥不要晕啊 帮帮忙啊 我想了好久了 没想出来
2010-07-02
  • 打赏
  • 举报
回复

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧