从 own.no_preselection_1_a 中选择 COUNT(1); SELECT COUNT(1) FROM own.no_preselection_1; 选择计数(1)从 (SELECT DISTINCT * FROM own.no_preselection_1_a ); 选择计数(1)从 (SELECT DISTINCT * FROM own.no_preselection_1 ); 选择计数(1) FROM OWN.no_preselection_1 t1 INNER JOIN OWN.no_preselection_1_a t2 ON t1.number = t2.number AND t1.location_number = t2.location_number;
这将返回:
计数(1) ---------------------- 398 计数(1) ---------------------- 398 计数(1) ---------------------- 308 计数(1) ---------------------- 308 计数(1) ---------------------- 578
如果我们在这里查看连接的视觉解释:http: //www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html
问题出在最后一个查询上。我会认为如果集合是相同的(即完美重叠),那么内部连接将返回一个与原始集合大小相同的集合。
问题是每个重复项都在为彼此创建条目吗?(例如,如果每个表上有 3 个相同值的重复值,它会为它创建 3x3 = 9 个条目?)这里的解决方案是什么?(只需选择不同的值来进行内部连接?)这是检查两个表是否包含相同数据的好测试吗?