首页 > 解决方案 > SQL | 如何比较具有相同结构的两个表

问题描述

我有两个结构相同的表,T_1 = [A, B, C] T_2 = [A, B, C]。它们在内部价值观上存在差异。如何使用查询获取这些值?

问候

标签: sql

解决方案


您可以使用group by和聚合来获取一个表中而不是另一个表中的值:

select sum(in_1), sum(in_2), a, b, c
from ((select 1 as in_1, 0 as in_2, a, b, c
       from t_1
      ) union all
      (select 0, 1, a, b, c
       from t_2
      )
     ) tt
group by a, b, c
having sum(in_1) <> sum(in_2);

请注意,这是非常通用的。它处理NULL列中的值。它还处理表中的重复项,确保计数相同。


推荐阅读