我有一个带有 VBA 的 Excel 程序,它连接到 MySQL 数据库以检索一些信息。最初,当程序加载时,我有以下查询。
SELECT A.id,A.first_name,A.last_name FROM Table1 A WHERE A.ID NOT IN(SELECT DISTINCT
SUBJECT FROM Table2)
表 1 有如下数据。
- 1 克里斯蒂安·贝尔
- 2 克里斯托弗·诺兰
- ETC
表 2 有如下数据。
- 1 acted_in 蝙蝠侠
- 2导演蝙蝠侠
- ETC
只要表 2 中的总行数较少,我上面给出的查询就可以很好地工作。但是,目前我的数据在表 1 中有 26000 行,在表 2 中有 102000 行。所以,当我在我的程序中运行上述查询时,它执行查询大约需要半个小时,有时它不能正确执行。我也尝试了以下查询,但也需要很长时间。
SELECT A.id, A.first_name, A.last_name FROM Table1 a
WHERE NOT EXISTS
(
SELECT 1
FROM Table2 al
WHERE a.id = al.subject
)
有没有一种有效的方法来改写查询?