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

三张很简单的表,如下例
表 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

慕姐4208626
浏览 108回答 2
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;

一只萌萌小番薯

SELECT user_id FROM user_managerWHERE manager_id = 4 AND user_id in (SELECT id FROM `user`WHERE role_id in (SELECT id FROM roleWHERE role = 10));
打开App,查看更多内容
随时随地看视频慕课网APP