来自2个表的不同值

时间:2015-08-17 13:49:45

标签: hadoop hive

假设我有2个表格如下。

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

ID,CITY,COUNTRY
1,NY,US
2,NJ,US

我需要输出这个,只有ID值

3

这里有任何帮助。?

3 个答案:

答案 0 :(得分:1)

从table1中选择a.ID a b.ID = a.ID中的左外连接table2 b,其中b.ID为null;

答案 1 :(得分:0)

对于任何表,ID基本上都可以对表格和过滤行进行 FULL JOIN 。假设您有两个名为temp_table1和temp_table2的表,则以下查询应该起作用:

  

select * from(select(CASE WHEN temp_table1.id is NULL THEN temp_table2.id WHEN temp_table2.id is NULL THEN temp_table1.id ELSE NULL END)as temp from temp_table1 FULL JOIN temp_table2 on temp_table1.id = temp_table2.id) q1其中id不为null;

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

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

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

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

答案 2 :(得分:0)

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