I have two tables A and B, A referred to B by field A.id_b B.id, so that any id_b value present in B.id.
I have three queries:
First one:
SELECT COUNT(b.id)
FROM B b
WHERE b.id NOT IN (
SELECT a.id_b
FROM A a)
It gives me 0;
Second one, difference only in NOT:
SELECT COUNT(b.id)
FROM B b
WHERE b.id IN (
SELECT a.id_b
FROM A a)
This query gives me: 1899
Third one:
SELECT COUNT(b.id)
FROM B b
And this query gives me 3599
SAME result in:
SELECT a.id_b
FROM A a
guaranty me spliting B.id on two sets, and count of elements in both sets must much total elements count, but I have: 1899 + 0 != 3599.
How that could be?
Found the reason. There was records in A, which has
NULLvalues inA.id_b. That’s why query:was returning
0.