我的表格之间存在不相交的关系:Employee(empId PK, name), HourlyEmployee(empId PK FK, hourlySalary)
empId
是对Employee.empId
的引用,
MonthlyEmployee(empId Pk FK, monthlySalary)
empId
是对Employee.empId
的引用。
如何创建导致AllEmployees(empId,name,hourlySalary,monthlySalary).
对于所有小时工的员工,monthSalary将为null,并且对于所有月度员工,每小时工资将为空
此致 王兴仁
答案 0 :(得分:1)
使用外部联接来获取所有员工,无论他们是否存在于HourlyEmployee或MonthlyEmployee(或两者都不存在)。
select e.empid, e.name, h.hourlysalary, m.monthlysalary
from employee e
left outer join hourlyemployee h on h.empid = e.empid
left outer join monthlyemployee m on m.empid = e.empid;
答案 1 :(得分:0)
select e.empid, e.name, h.hourlysalary, m.monthlysalary
from employee e
left outer join hourlyemployee h on h.empid = e.empid
left outer join monthlyemployee m on m.empid = e.empid
where (h.hourlysalary is null) or (m.monthlysalary is null);