SqlServer2005 多表交叉查询问题,求教

LifeIsArtOfWar 2013-03-09 01:37:20
多表查询建立视图,问题:有SYSUSER用户表,BAEMPY员工表进行关联,因用户表用有建立人ID,建立员工ID,更新人ID,更新员工字段ID,所以建立视图时希望都能将相关用户编码、用户名、员工编码、员工名关联出,但通过右关联出来数据有问题,求教,下面看数据.
SYUSER:IDNO,USERNO,USERNAME,EMPID,FSTUSRID,FSTEMPID,LSTUSRID,LSTEMPID,.....;
BAEMPY:IDNO,EMPNO,EMPNAME...;
事例数据:SYUSER表:
IDNO:SY001,USRNO:01,USRNAME:CSDN大神,EMPID:EMP001,FSTUSRID:SY002,FSTEMPID:EMP002,LSTUSRID:SY001,LSTEMPID:EMP001.
IDNO:SY002,USRNO:02,USRNAME:CSDN大神2,EMPID:EMP002,FSTUSRID:"",FSTEMPID:"",LSTUSRID:"",LSTEMPID:""
EMPY表:
IDNO:EMP001,EMPNO:A1,EMPYNAME:大神;
IDNO:EMP002,EMPNO:A2,EMPYNAME:大神2;

本人原始语句:
select
SYUSER001.*,
baempy001_3.EMPNO,
baempy001_3.EMPNAME,
syuser001_1.USRNAME FSTUSRNAME,
syuser001_1.USRNO FSTUSRNO,
syuser001_2.usrname LSTUSRNAME,
syuser001_2.usrno LSTUSRNO,
BAEMPY001.EMPNAME FSTEMPNAME,
BAEMPY001.EMPNO FSTEMPNO,
baempy001_1.EMPNAME LSTEMPNAME,
baempy001_1.EMPNO LSTEMPNO

from SYUSER001
RIGHT OUTER JOIN BAEMPY001 AS baempy001_3 ON SYUSER001.EMPID = baempy001_3.IDNO
RIGHT OUTER JOIN SYUSER001 AS syuser001_1 ON SYUSER001.FSTUSRID = SYUSER001_1.IDNO
RIGHT OUTER JOIN SYUSER001 AS SYUSER001_2 ON SYUSER001.LSTUSRID = SYUSER001_2.IDNO
RIGHT OUTER JOIN BAEMPY001 ON SYUSER001.FSTEMPID = BAEMPY001.IDNO
RIGHT OUTER JOIN BAEMPY001 AS BAEMPY001_1 ON SYUSER001.LSTEMPID = BAEMPY001_1.IDNO

一直使用oracle,对于oracle很好实现,但是sqlserver 使用很少,很费解。也尝试用标准的SYUSER001.LSTEMPID = BAEMPY001_1.IDNO(*)形式实现, 望大神赐教
...全文
191 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
LifeIsArtOfWar 2013-03-09
  • 打赏
  • 举报
回复
引用 2 楼 szm341 的回复:
呵呵,oracle不是也有right join与left join嘛,这个语法是相同的呀 a=b(+)这个语法就是相反的了
嗯,小白了,一直理解反的。一直以为a=b(+) 等于right join
szm341 2013-03-09
  • 打赏
  • 举报
回复
呵呵,oracle不是也有right join与left join嘛,这个语法是相同的呀 a=b(+)这个语法就是相反的了
LifeIsArtOfWar 2013-03-09
  • 打赏
  • 举报
回复
从新测试后,发现RIGHT OUTER JOIN 表示右关联的表数据全部出现,与SYUSER001.LSTEMPID = BAEMPY001_1.IDNO(+)相反,我改成LEFT OUTER JOIN 后数据正常。 T-SQL 真不熟啊

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧