部门表(部门编号,部门名称)
职务表(职务编号,部门编号,职务名称)
员工表(员工编号,职务编号,职务名称)查询员工姓名,职务名称,部门名称
SELECT 员工表.员工姓名, 职务表.职务名称, 部门表.部门名称
FROM (部门表 INNER JOIN 职务表 ON 部门表.部门编号 = 职务表.部门编号) RIGHT JOIN 员工表 ON 职务表.职务编号 = 员工表.职务编号;员工表的全部员工,(包括没有职务的)

解决方案 »

  1.   

    SELECT a.员工姓名, b.职务名称, b.部门名称
    FROM 员工表 a 
    left join (select 职务表.职务编号,职务表.职务名称, 部门表.部门名称 from 职务表 INNER    JOIN  ON 职务表.部门编号 = 部门表.部门编号) 
    b on a.职务编号 =  b.职务编号
      

  2.   

    员工表(员工编号,职务编号,员工名称)  我上边写错了
    我用的是access数据库不支持上面的方式
    我查了一下资料left join 中能包含 inner join ,inner join 中不能包含left join
    但我写了还不能用
    SELECT  员工表.员工姓名,  职务表.职务名称,  部门表.部门名称  
    FROM  (部门表  INNER  JOIN  职务表  ON  部门表.部门编号  =  职务表.部门编号)  inner  JOIN  员工表  ON  职务表.职务编号  =  员工表.职务编号;
    这样没问题
    但是没有职务的员工查不到