dev*_*Rew 6 postgresql where-in
我有两个表A和B,由字段A引用,因此任何值都存在于.BA.id_b B.idid_bB.id
我有三个疑问:第一个:
SELECT COUNT(b.id)
FROM B b
WHERE b.id NOT IN (
SELECT a.id_b
FROM A a)
Run Code Online (Sandbox Code Playgroud)
它给了我0;
第二个,区别仅在于NOT:
SELECT COUNT(b.id)
FROM B b
WHERE b.id IN (
SELECT a.id_b
FROM A a)
Run Code Online (Sandbox Code Playgroud)
这个查询给了我: 1899
第三个:
SELECT COUNT(b.id)
FROM B b
Run Code Online (Sandbox Code Playgroud)
这个查询给了我 3599
相同的结果:
SELECT a.id_b
FROM A a
Run Code Online (Sandbox Code Playgroud)
保证我B.id分成两组,并且两组中的元素数必须很多总元素数,但我有:1899 + 0 != 3599。
那怎么可能?
找到原因了。A 中有记录,其NULL值在 中A.id_b。这就是为什么查询:
SELECT COUNT(b.id)
FROM B b
WHERE b.id NOT IN (
SELECT a.id_b
FROM A a)
Run Code Online (Sandbox Code Playgroud)
正在返回0。
| 归档时间: |
|
| 查看次数: |
17730 次 |
| 最近记录: |