将具有相同列但值不同的两个表合并,仅返回不匹配的表

时间:2019-06-05 08:18:06

标签: sql oracle

我的表具有相同的列,但值并不完全相同。我想从表1中不存在但在表2中存在的列中看到值。

它适用于:

select *
from table_1
where not exists (select * from table_2 where table_1.xxx = table_2.xxx) 

然后我将其余各列彼此合并。

但是没有一种更快的方法可以连接不存在的每一列吗?

2 个答案:

答案 0 :(得分:1)

您的问题是“我想从表1中不存在但在表2中存在的列中看到值” ,但是您的代码示例正在获取{{1}中的所有行} table_1中不存在同一行 的地方。因此,在不知道您要哪个的情况下,我为您提供了此解决方案,它为您提供了您首先要的要求。如果您需要相反的方法,请交换表名:

table_2

注意事项:

  1. 表必须具有完全相同的架构。
  2. 如果您不确定模式,或者表可能随时间变化,则可以在select语句中指定列,但是只有指定的列会匹配。

答案 1 :(得分:0)

谢谢! EXPECT对我不起作用(使用Oracle),但是我应该使用MINUS。可行! TY!