mysql - 计数显示不正确?

标签 mysql sql

我在不同的数据库中有两个表。我正在尝试找出记录数量的差异。到目前为止我已经尝试过:

select COUNT(*) 
from tabel1 a1 
where not exists 
(
  select * 
  from db2.table1 a2 
  where a1.id = a2.id
);

返回31298。但如果我自己对表进行计数,我会得到以下结果:

SELECT COUNT(*) FROM Table1 --  227429 

SELECT COUNT(*) FROM db2.Table1 --  256406 

相差 28977 条记录。谁能看到我正在做的事情会导致计数差异?

更新

我知道我可以通过减去计数来确定差异。我想知道是否可以使用 notists 获得准确的差异。这是更复杂查询的简化版本。

最佳答案

表 2 中的某些记录在表 1 中没有任何对应的条目。

您的内部查询仅选择 table2 中也对应于 table1 的值。

如果 table1 有 ID

1
3
5

表 2 有 ID

1
3
7

您会看到计数为 1 (id 5),因为第 1 行和第 3 行匹配,但第 7 行不匹配任何内容。

关于mysql - 计数显示不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16989149/

相关文章:

mysql - 在更改 MySQL 列类型之前进行测试

Mac OS Mojave 10.14.3 上的 MySQL 8.0 语法错误

mysql - 检查 MySQL CPU 使用率(内部)

mysql - 在mysql中使用连接获取所需数据

sql - 在从 RDBMS 切换之前需要 MongoDB 专家/开发人员的建议

sql - GROUP BY 和 COUNT 使用 ActiveRecord

mysql - 连接优化

sql - 插入多个属性作为外键

php - 了解参数化查询 php、sql、mysql

mysql - 如果第一个字母相同,SQL Access 内连接