MYSQL-选择两个表中的行数差异

问题描述:

我正在尝试比较两个数据库中两个表的行数.行数应该相同:

I am trying to compare number of rows of two tables in two databases. The number of rows should be the same :

选择

(从db1.table1中选择COUNT(*)个)-

(SELECT COUNT(*) FROM db1.table1)-

(从db2.table1中选择COUNT(*)个) AS差异

(SELECT COUNT(*) FROM db2.table1) AS difference

仅当差异<> 0时如何选择?我需要为多个表运行,我不需要0值. 我可以将结果加载到C#列表中并进行排序,但我想在查询中完成所有操作.

How do i select only if difference<>0? I need to run this for multiple tables and i don't need 0 values. I could load results in C# list and sort it out but i'd like to finish all in query.

我尝试为此使用information_schema.TABLES,但是它不适合,因为它返回近似结果. 我正在使用Mysql 5.5

I've tried using information_schema.TABLES for this but it's not suitable because it returns approximate results. I'm using Mysql 5.5

SELECT * FROM (选择 (从db1.table1选择COUNT())- (从db2.table1选择COUNT()个) AS t,"table1" AS表)X 其中x.t1 0 全联盟 选择*从 (选择 (从db1.table2选择COUNT())- (从db2.table2中选择COUNT()个) AS t,"table2" AS表)X x.t<> 0

SELECT * FROM (SELECT (SELECT COUNT() FROM db1.table1) - (SELECT COUNT() FROM db2.table1) AS t, "table1"AS table) X WHERE x.t1<>0 UNION ALL SELECT * FROM (SELECT (SELECT COUNT() FROM db1.table2) - (SELECT COUNT() FROM db2.table2) AS t, "table2"AS table) X WHERE x.t<>0