Я бы попытался разделить это на два отдельных оператора с отдельными подключениями к базе данных.
Сначала получите список адресов электронной почты или идентификаторов в первой базе данных (в виде строки).
Во-вторых, создайте оператор WHERE NOT IN и запустите его во второй базе данных.
Я бы предположил, что это будет намного быстрее, так как он не должен взаимодействовать между двумя базами данных. Единственная возможная проблема будет, если в первой базе данных есть тысячи записей, и вы достигнете максимальной длины строки запроса SQL (что бы это ни было).
Вот несколько полезных функций для этого:
function GetDelimitedRecordString(sql, recordDelimiter)
dim rs, str
set rs = db.execute(sql)
if rs.eof then
str = ""
else
str = rs.GetString(,,,recordDelimiter)
str = mid(str, 1, len(str)-len(recordDelimiter))
end if
rs.close
set rs = nothing
GetDelimitedRecordString = str
end function
function FmtSqlList(commaDelimitedStringOrArray)
' converts a string of the format "red, yellow, blue" to "'red', 'yellow', 'blue'"
' useful for taking input from an html form post (eg a multi-select box or checkbox group) and using it in a SQL WHERE IN clause
' prevents sql injection
dim result:result = ""
dim arr, str
if isArray(commaDelimitedStringOrArray) then
arr = commaDelimitedStringOrArray
else
arr = split(commaDelimitedStringOrArray, ",")
end if
for each str in arr
if result<>"" then result = result & ", "
result = result & "'" & trim(replace(str&"","'","''")) & "'"
next
FmtSqlList = result
end function