为什么这个sql语句需要这么长时间?

为什么这个sql语句需要这么长时间?,sql,ms-access,Sql,Ms Access,我是Access的初学者。我编写以下SQL语句: INSERT INTO tbl_LaunchWeeklyPlan IN 'C:\...\SomeDb.accdb' SELECT ID, LaunchID, WeekYear, LaunchWeek, LaunchYear, Quantity, true AS IsActive FROM tbl_LaunchWeeklyPlan t WHERE t.ID NOT IN (SELECT ID FROM tbl_LaunchWeeklyPla

我是Access的初学者。我编写以下SQL语句:

INSERT INTO tbl_LaunchWeeklyPlan
IN 'C:\...\SomeDb.accdb'

SELECT ID, LaunchID, WeekYear, LaunchWeek, LaunchYear, Quantity, true AS IsActive 
FROM tbl_LaunchWeeklyPlan t 
WHERE t.ID NOT IN (SELECT ID 
FROM tbl_LaunchWeeklyPlan 
IN 'C:\...\SomeDb.accdb')

大约需要5分钟,表中包含大约15000条记录。

您可以尝试使用外部联接。这可能会执行得更快

INSERT INTO tbl_LaunchWeeklyPlan IN 'C:\...\SomeDb.accdb' 
SELECT ID, LaunchID, WeekYear, LaunchWeek, LaunchYear, Quantity, true AS IsActive FROM tbl_LaunchWeeklyPlan t
LEFT JOIN tbl_LaunchWeeklyPlan IN 'C:\...\SomeDb.accdb' f
ON t.ID = f.ID
WHERE f.ID = null

您是否从
MEM\u BE\u GEU(7\u 13)运行此命令。accdb
?不,我从另一个access db运行它。它非常接近,但f.ID为NULL不会更好吗?是的,抱歉,is NULL是正确的语法。您是否尝试过在没有条件的情况下运行insert并忽略错误?我尝试过,实际上解决了将“=”替换为IS的问题,谢谢。