-1

设置:

(数量 1)员工表(employeeID、employeeName)

(数量 1)PayType 表(payTypeID、payTypeName)

(数量 1)PaySchedule 表(payScheduleID、payScheduleName)

(数量 1)联结表(Employee_has_PayType),其中员工被分配了多个支付类型(employeeID、payTypeID)

(数量 1)联结表 (Employee_has_PaySchedule),其中为员工分配了多个工资计划(employeeID、payScheduleID)

我需要的:

我想获取所有分配了这些payTypeID(29,31,32)(来自Employee_has_PayType)具有payScheduleID 1(来自Employee_has_PaySchedule)中的一个或所有的EmployeeID

我只想要那些同时满足这两个条件的 EmployeeID。

到目前为止,我已经尝试过:

SELECT 
    Employee_has_PayType.Employee_employeeID as 'type',
    Employee_has_PaySchedule.Employee_employeeID  as 'sched'
FROM
    Employee_has_PayType, Employee_has_PaySchedule 
WHERE 
    Employee_has_PayType.PayType_payTypeID in (29,31,32) 
AND 
    Employee_has_PaySchedule.PaySchedule_payScheduleID = 1
GROUP BY
    Employee_has_PayrollSchedule.Employee_EmployeeID

但它只返回所有具有 paySchedule 1 的员工 ID。

任何帮助将不胜感激。

4

1 回答 1

3

尝试:

SELECT DISTINCT
    Employee_has_PayType.Employee_employeeID 
FROM Employee_has_PayType
JOIN Employee_has_PaySchedule 
  ON Employee_has_PayType.Employee_employeeID = 
     Employee_has_PaySchedule.Employee_employeeID
WHERE 
    Employee_has_PayType.PayType_payTypeID in (29,31,32) 
AND Employee_has_PaySchedule.PaySchedule_payScheduleID = 1
于 2013-02-01T18:35:39.980 回答