为了账号安全,请及时绑定邮箱和手机立即绑定

求高手帮忙给出sql语句,谢谢!

求高手帮忙给出sql语句,谢谢!

慕姐4208626 2022-09-17 21:11:20

三张很简单的表,如下例
表 user
----------------------------
id    role_id
1        1
2        1
3        1
4        2
5        2
6        3
----------------------------

表 role
----------------------------
id     role
1       10
2       20
3       30

表user_manager ,  user_id和manager_id 的值都是user表中的id
---------------------------------------------
id    user_id    manager_id
1        1         4      表示user 1 被 user 4管理,以下类推
2        2         4
3        3         5
4        4         6
5        5         6 


现在的要求是,给定一个user id, 找出被他管的指定role的user id.

比如,
给定user 6,求他所管的role为20的user ,结果是user 4,5
给定user 6,求他所管的role为10的user,结果是user1,2,3
给定user 4,求他所管的role为10的user,结果是user1,2

查看完整描述

2 回答

?
缥缈止盈

TA贡献1704条经验 获得超2个赞

不知道你是什么数据库,我这个是mysql的写法:
select u.id from user_manager um left join user u on u.id=um.user_id left join role r on u.role_id=r.id where um.manager_id=6 and r.role=20;

查看完整回答
反对 回复 2022-09-21
?
一只萌萌小番薯

TA贡献1479条经验 获得超7个赞

SELECT user_id FROM user_manager

WHERE manager_id = 4 AND user_id in (
SELECT id FROM `user`
WHERE role_id in (
SELECT id FROM role
WHERE role = 10
)
);


查看完整回答
反对 回复 2022-09-21

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信