SQL „select where not in subquery” nie zwraca żadnych wyników

Zastrzeżenie: Rozumiem problem (myślę), ale chciałem dodać ten problem do Stack Overflow, ponieważ nie mogłem (łatwo) znaleźć go w dowolnym miejscu. Ponadto ktoś może mieć lepszą odpowiedź niż ja.

Mam bazę danych, do której odwołuje się jedna tabela „Common” w kilku innych tabelach. Chciałem zobaczyć, jakie rekordy w tabeli wspólnej zostały osierocone (tj. Nie miały żadnych referencji z żadnej innej tabeli).

Uruchomiłem to zapytanie:

select *
from Common
where common_id not in (select common_id from Table1)
and common_id not in (select common_id from Table2)

Wiem, że istnieją osierocone rekordy, ale nie zwrócono żadnych rekordów. Dlaczego nie?

(To jest SQL Server, jeśli ma to znaczenie).

questionAnswers(9)

yourAnswerToTheQuestion