为什么这两个结果集不相加?

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 的子集。我是个笨蛋...