日期:2014-05-16  浏览次数:20776 次

oracle不对称查询语句
有五张表:user(用户表userid,username,isdelete(1表示在职)),org(组别表orgid,orgname),role(角色表roleid,rolename),org_user(用户组别的关联表id,orgid,userid),role_user(用户角色的关联表id,roleid,userid)。现在想从这5张表中获取--所有在职user的userid,username,orgname,rolename;
注意:有些在职用户可能没有角色和组别,但是只要用户在职就查询出来!

------解决方案--------------------

select u.userid,u.username,o.orgname,r.rolename from user  u
left join org_user ou on u.userid = ou.userid
left join org o on o.orgid = ou.orgid
left join role_user ru on u.userid = ru.userid
left join role r on r.roleid = ru.roleid
where u.isdelete = 1


话说,isdelete=1表示在职不科学啊!!