gpt4 book ai didi

sql - 如何提高 NOT IN 查询的性能

转载 作者:行者123 更新时间:2023-12-03 01:13:27 25 4
gpt4 key购买 nike

我有以下 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 语句。

最佳答案

使用 NOT EXISTS 可能会对您有所帮助。

SELECT 
em.employeeid,
tsi.timestamp
FROM timesheet_temp_import tsi
join employee emp ON emp.employeeid = tsi.credentialnumber
WHERE
tsi.masterentity = 'MASTER' AND

NOT EXISTS
(
SELECT NULL
FROM employee_attendance ea
WHERE
ea.employeeid = em.employeeid
AND ea.timestamp = tsi.timestamp
AND ea.ismanual = 0
)
GROUP BY
em.employeeid,
tsi.timestamp

关于sql - 如何提高 NOT IN 查询的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30511307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com