Hadoop 两个表中的不同值

Hadoop 两个表中的不同值,hadoop,hive,Hadoop,Hive,假设我有如下两个表 ID, NAME, NO 1, PK,101 2,AK,102 3,OK,103 ID,CITY,COUNTRY 1,NY,US 2,NJ,US 我需要得到这样的输出,只有ID值 3 这里有任何帮助吗?您基本上可以对表和筛选器行执行完全联接,其中任何表的ID都为NULL。假设您有两个名为temp_table1和temp_table2的表,下面的查询应该可以工作: 当temp_table1.id为空时,从select CASE中选择*然后当temp_table2.id为空

假设我有如下两个表

ID, NAME, NO
1, PK,101
2,AK,102
3,OK,103

ID,CITY,COUNTRY
1,NY,US
2,NJ,US
我需要得到这样的输出,只有ID值

3
这里有任何帮助吗?

您基本上可以对表和筛选器行执行完全联接,其中任何表的ID都为NULL。假设您有两个名为temp_table1和temp_table2的表,下面的查询应该可以工作:

当temp_table1.id为空时,从select CASE中选择*然后当temp_table2.id为空时,从temp_table1.id选择temp_table2.id,然后从temp_table1.id上的temp_table1完全连接temp_table2.idq1结束作为id,其中id不为空

说明: 首先,我对这两个表进行完全联接,以获得与这两个表对应的所有行

然后在这种情况下,我检查如果表1中的id为NULL,那么我们将从表2中返回id

同样,如果表2中的id为NULL,我们将从表1返回id。 如果它在任何表中都不是NULL,那么我们将返回NULL


最后,我们将把它放在一个子查询中,并返回返回id不为null的行。希望这能有所帮助。

从表1 a左外部联接表2 b中选择a.ID,b.ID=a.ID,其中b.ID为空

正如@DRAGO回答的那样,在这种情况下,外部连接应该足够有效

如果不同的值来自表2而不是表1,那么这将不起作用。您是说您希望表1的ID不在表2中,表2的ID也不在表1中?我需要表1的ID不在表2中