三张很简单的表,如下例表 user----------------------------id role_id1 12 13 14 25 26 3----------------------------表 role----------------------------id role1 102 203 30表user_manager , user_id和manager_id 的值都是user表中的id---------------------------------------------id user_id manager_id1 1 4 表示user 1 被 user 4管理,以下类推2 2 43 3 54 4 65 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贡献2041条经验 获得超4个赞
不知道你是什么数据库,我这个是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;
一只萌萌小番薯
TA贡献1795条经验 获得超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
)
);
添加回答
举报
0/150
提交
取消