我有以下的SQL查询。
SELECT em.employeeid, tsi.timestamp
FROM timesheet_temp_import tsi
JOIN employee emp ON emp.employeeid = tsi.credentialnumber
WHERE
tsi.masterentity = 'MASTER' AND
tsi.timestamp NOT IN
(
SELECT ea.timestamp
FROM employee_attendance ea
WHERE
ea.employeeid = em.employeeid
AND ea.timestamp = tsi.timestamp
AND ea.ismanual = 0
)
GROUP BY em.employeeid, tsi.timestamp
这个查询比较了一个导入表(包含员工出勤时间戳)。有时,
timesheet_temp_import
表格会超过95,000行,我的查询必须仅显示对于员工而言是新的时间戳,如果时间戳已经存在于员工记录中,则需要将其排除。 查询已经在工作,但是时间超过4分钟,因此我想知道是否可以改进使用 NOT IN
语句以减少这个时间。
WHERE
子句来限制主要的SELECT
语句,仅获取timesheet_temp_import
中最新的条目吗?你可以使用某种书签... - ForguesR