フィールド によって参照される とA
の2 つのテーブルがあるため、 に存在する任意の値が.B
A
B
A.id_b B.id
id_b
B.id
3 つのクエリがあります。
SELECT COUNT(b.id)
FROM B b
WHERE b.id NOT IN (
SELECT a.id_b
FROM A a)
それは私に与えます0
;
2 つ目、違いはNOT
:
SELECT COUNT(b.id)
FROM B b
WHERE b.id IN (
SELECT a.id_b
FROM A a)
このクエリは私に与えます:1899
三つ目:
SELECT COUNT(b.id)
FROM B b
そして、このクエリは私に3599
同じ結果:
SELECT a.id_b
FROM A a
2つのセットに分割することを保証B.id
し、両方のセットの要素の数は合計要素数よりも多くなければなりませんが、私は1899 + 0 != 3599を持っています。
それはどうしてですか?