gpt4 book ai didi

PostgreSQL:在什么地方而不在什么地方

转载 作者:行者123 更新时间:2023-11-29 11:48:34 24 4
gpt4 key购买 nike

我有两个表 ABA 通过字段 A 引用 B。 id_b B.id,因此 B.id 中存在的任何 id_b 值。

我有三个问题:第一个:

SELECT COUNT(b.id)
FROM B b
WHERE b.id NOT IN (
SELECT a.id_b
FROM A a)

它给了我 0;

第二个,区别仅在于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

保证我将 B.id 分成两个集合,并且两个集合中的元素数必须是总元素数,但我有:1899 + 0 != 3599 .

怎么可能?

最佳答案

找到原因了。 A中有记录,在A.id_b中有NULL值。这就是为什么查询:

SELECT COUNT(b.id)
FROM B b
WHERE b.id NOT IN (
SELECT a.id_b
FROM A a)

正在返回 0

关于PostgreSQL:在什么地方而不在什么地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12891971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com