我有一个包含 144,194 行的“主”表 (cited_papers
),以及一个包含 7,977 行样本的“样本”表 (publication
)。我试图获取主表中而不是示例表中的行(通过其唯一的 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
来计算主表和示例表中的行数,因此我确信这两个表中都没有重复项。
最佳答案
独特的东西可能会让人失望。运行以下查询来验证您的号码。
验证“主”行的数量:
从 alex_WOS.cited_papers 中选择计数(*)
验证“样本”行数:
从 alex_WOS.publication 中选择计数(*)
验证不在“样本”表中的“主”行数:
SELECT count(*) FROM alex_WOS.cited_papers c LEFT JOIN alex_WOS.publication p USING(id) WHERE p.id IS NULL
这些数字应该加起来......
关于mysql - 为什么这两个结果集没有相加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29309132/