SQL高手进来玩玩

来源:百度知道 编辑:UC知道 时间:2024/06/17 02:14:32
用户表 tbluser(usercode,realyname) 用户编号,名称
部门表 tbldept(deptcode,deptname) 部门编号,名称
岗位表 tblgangwei(gwcode,gwname) 岗位编号,名称
角色表 tbljuese(jscode,jsname) 角色编号,名称
关联表 tblral(usercode,deptcode,gwcode,jscode) 用户、部门、岗位,角色编号
兼职表 tblpart(usercode,deptcode,gwcode,jscode) 用户、部门、岗位,角色编号

查询要求:
根据用户编号usercode ,查询出该用户对应的部门编号及名称,岗位编号也名称,角色编号及名称,兼职部门编号及名称,兼职岗位编号及名称,兼职角色编号及名称,不用临时表,就只用一条SQL语句能不能实现?

Select
--通过关联表得到的对应的部门编号及名称,岗位编号也名称,角色编号及名称
C.DeptCode,C.DeptName,D.gwcode,D.gwname,E.jsCode,E.jsName,
--通过兼职表得到的对应的部门编号及名称,岗位编号也名称,角色编号及名称
G.DeptCode,G.DeptName,H.gwcode,H.gwname,I.jsCode,I.jsName
From tbluser A
--下面这四句是通过关联过关联起来的
Left Join tblral B On A.UserCode=B.UserCode
Left Join tbldept C On B.DeptCode=C.DeptCode
Left Join tblgangwei D On B.gwcode=D.gwcode
Left Join tbljuese E On B.jscode=E.jscode
--下面这四句是通过兼职表关联起来的
Left Join tblpart F On A.UserCode=F.UserCode
Left Join tbldept G On F.DeptCode=G.DeptCode
Left Join tblgangwei H On F.gwcode=H.gwcode
Left Join tbljuese I On F.jscode=I.jscode
Where A.UserCode='@usercode'

select * from
(select
a.usercode as 用户编码,
c.realyname as 用户名称,
a.deptcode as 部门编码,
d.deptname as 部门名称,
a.gwcode as 岗位编码,
e.gwname as 岗位名称,
a.jscode as 角色编码,
f.jsname as 角色名称
from tblral a, tbluser c,t