У меня есть две таблицы, T1 и T2, которые имеют несколько общих записей. Я пытаюсь выяснить, какие записи распределяются между ними. Просто чтобы уточнить, «msg» уникально для каждой записи.
T1 имеет ~ 1,4 миллиона записей. Когда я запускаю
select count(*) from T1 where msg in (select msg from T2)
, я получаю ~ 950 000 записей. Хорошо, 950 тыс. Из 1,4 млн. Там должно быть около 450 тыс. Записей, которые появляются, когда я запускаю обратное право? Запрос ниже:
select count(*) from T1 where msg not in (select msg from T2)
Этот запрос фактически возвращает 0. Как это возможно? Кроме того, когда я запускаю
select count(*) from T1 where id not in (select id from T2)
, я получаю около 1100 записей, так что, очевидно, есть некоторые записи в T1, которых нет в T2.
Чего мне не хватает? Любая помощь очень ценится.