Когда я сравниваю таблицы в поисках данных, которых нет в другой, я обычно использую SQL Division.
select *(or selected matching field)
from tableA as A
where not exist
(select *(or selected matching field)
from tableB as B
where A.key = B.key)
Этот запрос вернет результаты, которые находятся в таблице A и не находятся в процессе деления.
select *(or selected matching field)
from tableA as A
where exist
(select *(or selected matching field)
from tableB as B
where A.key = B.key)
Этот запрос вернет все строки данных, которые совпадают в обеих таблицах, поэтому, если в таблице A есть данные строки, которых нет в таблице B, эта строка данных не будет получена.