表1  员工表
员工  部门编号 职位编号
1      m      n表2  部门表
部门编号 部门名称
m         采购表3 职位表
职位编号 职位名称
 n       科长如何输出1   采购  科长

解决方案 »

  1.   

    SELECT a.员工,b.部门名称,c.职位名称
    FROM 员工表 a LEFT JOIN 部门表 b ON a.部门编号=b.部门编号
                   LEFT JOIN 职位表 c ON a.职位编号=c.职位编号
      

  2.   

    Employees:员工表
    Department:部门表
    Post:职位表select e.Employee as '员工',d.DepartmentName as '部门名称',p.PostName as '职位名称'
    from Department as d
    join Employees as e
    on e.DepartmentNo=d.DepartmentNo
    join Post as p
    on e.PostNo=p.PostNo
      

  3.   


    declare @a table (员工 int,部门编号 varchar(10),职位编号 varchar(10))
    insert into @a select 1,'m','n'
    declare @b table (部门编号 varchar(10),部门名称 varchar(10))
    insert into @b select 'm','采购'
    declare @c table (职位编号 varchar(10),职位名称 varchar(10))
    insert into @c select 'n','科长'
    select a.员工,b.部门名称,c.职位名称 from @a a join @b b on a.部门编号=b.部门编号
                            join @c c on a.职位编号=c.职位编号1 采购 科长
      

  4.   

    你想如何处理null?不想出现null值就用inner join。
    要想把所有员工都列出来,就用两个 left join,另2个表没有对应数值就是null了。