查找两个数据集之间的差异

问题描述 投票:0回答:1

我想获取一个表中但不在另一个表中的用户信息。 数据样本:

Table_1
user1 user2 flag_ind
Ambra Burn    1
Ambra Downs   0
Chris Leopold 1
Martin Stewart 0



Table 2
user1 user2 flag_ind
Ambra Burn    0
Greg  See     1
Curtis John   0


Expected output

    user1 user2 
    Ambra Downs    
    Chris Leopold 
    Martin Stewart 
    Greg See
    Curtis John

我使用左连接来获取两个数据集之间的差异。我需要比较表 1 中 user1 的值和表 2 中 user1 的值,以及 表 1 中 user2 的值和表 2 中 user2 的值并得到最终列表。 现在,我发现当我使用左连接与减号时,缺失值有所不同。 你能帮我得到想要的输出并理解为什么 left join 和 minus 会产生不同的值吗?

谢谢

sql teradata proc-sql
1个回答
0
投票

我不明白你所说的左连接减号是什么意思。最好能显示你的sql语句。但可以遵循以下解决方案:

(SELECT *
FROM Table_1
EXCEPT DISTINCT
SELECT *
FROM Table_2)

UNION DISTINCT

(SELECT *
FROM Table_2
EXCEPT DISTINCT
SELECT *
FROM Table_1)

UNION DISTINCT 之前的第一部分为您提供 table_1 中不在 table_2 中的内容。

UNION DISTINCT 后面的部分给出了 table_2 中不在 table_1 中的内容。

你结合 UNION DISTINCT,你得到了两个表之间的区别。

© www.soinside.com 2019 - 2024. All rights reserved.