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