Реляционный оператор, на который вы ссылаетесь, известен как полуразница или анти-соединение.Существует множество способов написания анти-объединений в Access (ACE, Jet и т. Д.): Помимо вашей и @ HansUp, есть еще пара:
SELECT D.LocCode
FROM tblData AS D
WHERE D.LocCode <> ALL (SELECT LocCode FROM tblLoc);
SELECT D.LocCode
FROM tblData AS D
WHERE NOT EXISTS (
SELECT *
FROM tblLoc
WHERE D.LocCode = L.LocCode
);
Я думаю, что последняя лучше, потому чтопараметры для прецизионного кода в коде приблизительны, и поэтому мне, человеку, легче читать и понимать.
HansUp считает, что они лучше, потому что должен быть быстрее вашего (но онивероятно, присоединюсь ко мне и призываю вас всегда тестировать, используя данные, типичные для вашего варианта использования).
Как вы определяете «лучше»?