Я пытаюсь очистить некоторые данные на SQL-сервере и добавить внешний ключ между двумя таблицами.
У меня есть большое количество потерянных строк в одной из таблиц, которые я хотел бы удалить. Я не знаю, почему следующий запрос вернет 0 строк на сервере MS SQL.
--Этот запрос не возвращает строк
выберите * из tbl_A, где ID не входит (выберите отдельный идентификатор из tbl_B)
Когда я включаю в подзапрос IS NOT NULL, я получаю ожидаемые результаты.
- Возвращаются строки, содержащие все записи в tbl_A, но не в tbl_B
выберите * из tbl_A, где ID не входит (выберите отдельный идентификатор из tbl_B, где ID не равен нулю)
Столбец ID допускает значение NULL и не содержит значений NULL. ЕСЛИ я запускаю только подзапрос, я получаю точно такие же результаты, за исключением того, что первый запрос возвращает одну дополнительную строку NULL, как и ожидалось.