Я использую Oracle Жаба с SQL командами в окне редактора.
Я создал две новые таблицы (PIDS1
и PIDS2
), которые содержат только один столбец идентификационных номеров из две связанные таблицы.
Я ожидал, что PIDS2
будет содержать расширенный набор идентификаторов в PIDS1
. Когда я попытался идентифицировать идентификаторы в PIDS2
, которых нет в PIDS1
, я начал дикую погоню goose.
Предположим, что с данными в моих таблицах происходит нечто неожиданное. Но я не могу понять смысл двух упрощенных запросов, описанных ниже. Числа противоречивы. Может кто-нибудь объяснить, что происходит?
-- PIDS1 IS A SINGLE-COLUMN TABLE THAT CONTAINS 1638061 DISTINCT ID'S
-- PIDS2 IS A SINGLE-COLUMN TABLE THAT CONTAINS 3510272 DISTINCT ID'S
SELECT COUNT(T2.ID)
FROM PIDS2 T2
WHERE T2.ID NOT IN (
SELECT T1.ID
FROM PIDS1 T1);
-- RESULT IS ZERO!
-- WTF? PIDS2 HAS MORE ID'S THAN PIDS1!
SELECT COUNT(T1.ID)
FROM PIDS1 T1
WHERE T1.ID NOT IN (
SELECT T2.ID
FROM PIDS2 T2);
-- RESULT IS 786690
-- WHERE DID THAT NUMBER COME FROM? LOOKS ARBITRARY