为什么这两个结果集不相加?
Why aren't these two result sets adding up?
我有一个 "master" table (cited_papers
) 的 144,194 行,还有一个 "sample" table (publication
) 包含这些行中的 7,977 个样本。我正在尝试获取主 table 但不是示例 table:
中的行(通过其独特的 id
字段)
SELECT DISTINCT c.*
FROM alex_WOS.cited_papers as c LEFT JOIN alex_WOS.publication USING (id)
WHERE alex_WOS.publication.id IS NULL
这有效,但我得到的结果计数是 141,019。为什么这些计数没有加起来? (141,019 + 7977 != 144,194) 我做了一个 SELECT DISTINCT
来计算主样本和样本 table 中的行数,所以我确定这两个 table 中都没有重复项s.
不同的人可能会丢东西。 运行 下面的查询来验证您的电话号码。
验证 "master" 行数:
SELECT count(*) FROM alex_WOS.cited_papers
验证 "sample" 行数:
SELECT count(*) FROM alex_WOS.publication
验证不在 "sample" table 中的 "master" 行数:
SELECT count(*) FROM alex_WOS.cited_papers c LEFT JOIN alex_WOS.publication p USING(id) WHERE p.id IS NULL
这些数字应该相加...
正如 JNevill 所建议的,我的 sample
table 毕竟不是 master
的子集。我是个笨蛋...
我有一个 "master" table (cited_papers
) 的 144,194 行,还有一个 "sample" table (publication
) 包含这些行中的 7,977 个样本。我正在尝试获取主 table 但不是示例 table:
id
字段)
SELECT DISTINCT c.*
FROM alex_WOS.cited_papers as c LEFT JOIN alex_WOS.publication USING (id)
WHERE alex_WOS.publication.id IS NULL
这有效,但我得到的结果计数是 141,019。为什么这些计数没有加起来? (141,019 + 7977 != 144,194) 我做了一个 SELECT DISTINCT
来计算主样本和样本 table 中的行数,所以我确定这两个 table 中都没有重复项s.
不同的人可能会丢东西。 运行 下面的查询来验证您的电话号码。
验证 "master" 行数:
SELECT count(*) FROM alex_WOS.cited_papers
验证 "sample" 行数:
SELECT count(*) FROM alex_WOS.publication
验证不在 "sample" table 中的 "master" 行数:
SELECT count(*) FROM alex_WOS.cited_papers c LEFT JOIN alex_WOS.publication p USING(id) WHERE p.id IS NULL
这些数字应该相加...
正如 JNevill 所建议的,我的 sample
table 毕竟不是 master
的子集。我是个笨蛋...