У меня есть две таблицы со следующим определением
TableA TableB
ID1 ID2 ID3 Value1 Value ID1 Value1
C1 P1 S1 S1
C1 P1 S2 S2
C1 P1 S3 S3
C1 P1 S5 S4
S5
Значения являются лишь примерами в таблице. TableA имеет кластерный первичный ключ ID1, ID2 и ID3, а TableB имеет p.k. ID1
Мне нужно создать таблицу с отсутствующими записями в TableA на основе TableB
Запрос на выборку, который я пытаюсь создать, должен выдать следующий результат
C1 P1 S4
Для этого у меня есть следующий запрос SQL
SELECT
DISTINCT TableA.ID1, TableA.ID2, TableB.ID1
FROM TableA a, TableB b
WHERE TableB.ID1 NOT IN
(
SELECT DISTINCT [ID3]
FROM TableA aa
WHERE a.ID1 == aa.ID1
AND a.ID2 == aa.ID2
)
Хотя этот запрос работает, он работает плохо, и моя последняя таблица A может содержать до 1 млн записей.
Есть ли способ переписать это более эффективно.
Спасибо за любую помощь,
Джавид