我正在努力自动消除MS Access中两个表中不匹配的行。众所周知,Access有一个名为Find unmatched records
的查询向导。即使对于500k数据行,此方法也能快速工作。
但是当我在MS Access VBA中执行查询时,它的工作速度很慢。是否有更快的SQL实现来消除数据,或者MS Access是否使用不同的方法?我怎样才能快速完成?
以下是我在VBA中的查询。表1和表2各有超过100k行。
strQuery = SELECT gsmno INTO newtablename FROM table1 WHERE gsmno NOT IN (SELECT gsmno FROM table2)
CurrentDb.Execute strQuery
答案 0 :(得分:1)
使用LEFT OUTER JOIN并在Table2 gsmno上检查NULL。那些是你的不匹配。
strQuery = & _
"SELECT " & _
" t1.gsmno " & _
"INTO " & _
" newtablename " & _
"FROM " & _
" table1 as t1 " & _
"LEFT OUTER JOIN " & _
" table2 as t2 on " & _
" t1.gsmno = t2.gsmno " & _
"WHERE " & _
" isnull(t2.gsmno) = true;"
CurrentDb.Execute strQuery