mysql - 计算 2 个不同表中 2 行之间的不匹配数 - MySQL

标签 mysql sql database

我有一个包含 2 个表的数据库。 表1表2

Table1 包含测试列表(列 'name' )。我想根据 table1 的测试列表计算 table2 中缺少多少行(该表还有一列 'name' )强>。 所以我只想统计table1.name和table2.name之间的不匹配情况。

我尝试了几个查询,但都没有真正起作用。 我尝试使用“NOT IN”语句,但它花费了太多时间。大约几分钟。

例如,输出应为:

COUNT(*) = 20

这意味着表2中缺少(或尚未完成)20 个测试。

我使用的是 MySQL,因此无法使用 EXCEPTMINUS 语句。

提前谢谢您。

北欧

最佳答案

您可以使用不存在:

select count(*)
from table1 t1
where not exists (select 1 from table2 t2 where t2.name = t1.name);

如果 table1 中有重复的 name,那么您需要 count(distinct t1.name)

关于mysql - 计算 2 个不同表中 2 行之间的不匹配数 - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51743431/

相关文章:

mysql - 如何用SQL查询当年的月份和天数?

sql - 将表复制到两个新表中

mysql - 除非指定主键,否则防止从表中删除 *

php - mysqli_connect() 在存储在外部文件中的函数中不起作用

Mysql:从尝试插入中获取ID的最有效方法?

mysql - Excel 字符串中的多个单词替换

java - DB2 和 ResultSetMetaData - 无法获取列名称

mysql - 如何获取用户聊天信息

php - 当我向其添加日期范围时,我的查询将不起作用。使用 PHP 和 MySQL

sql - 低选择性色谱柱的索引和替代品