У меня есть вопрос и был бы признателен, если бы кто-нибудь мог помочь.Найти записи не в другой таблице
У меня есть две таблицы (REPL_SEND и Repl_Finish как имеющие 4 колонки
UID (varchar)
reportID (varchar)
reportIDVersion (varchar)
replSendDTM (datetime)
UID отличается в обеих таблицах (это первичный ключ для таблицы)
Они могут иметь повторяющееся значение в ReportId
и reportIDVersion
.
Я хочу reportID/reportIDVersion
от REPL_SEND
, так что такая комбинация reportID/reportIDVersion
нет в Repl_Finish
.
Что я пробовал:
SELECT *
FROM REPL_SEND (nolock)
WHERE reportID NOT IN (SELECT reportID FROM Repl_Finish)
Это возвращает около 12 000 записей. Но когда я попытался
SELECT t1.reportID
FROM REPL_SEND t1 (nolock)
LEFT JOIN Repl_Finish t2 (nolock) ON t2.reportID = t1.reportID
Я не получаю никаких значений (я имею в виду DB предпринимает очень долго, по-прежнему выполняется после того, как 15-й минуты)
Вопрос № 1: Это мой первый запрос правильно? [Основной вопрос]
Вопрос №2: Почему это занимает много времени со вторым запросом?
мой apologies.UID отличается в обоих table.UID отличается первичный ключ таблицы – vic90