在两个配置单元表中选择不同的列

时间:2019-07-04 08:48:14

标签: hive

我有两个配置单元表,如下所示:

    names
id     name
1      mark
2      smith
3      john
4      robin

    Names
id     name
3      john
4      smith
5      tailor
6      will

我想联接表,以便结果集应包含第一张表和第二张表的非重叠值。

  id      name
  1       mark
  2       smith
  5       tailor
  6       will

我该怎么做?

1 个答案:

答案 0 :(得分:1)

尝试使用Full outer join,然后从结果集中仅过滤 null records ,然后应用 coalesce 函数以获取非null列的值。

示例:

select coalesce(tmp.id,tmp1.id)id,
       coalesce(tmp.name,tmp1.name)name 
from table1 full outer join table2 
      on table1.id = table2.id 
where table1.id is null or table2.id is null;

结果:

+---+------+
| id|  name|
+---+------+
|  1|  mark|
|  6|  will|
|  5|tailor|
|  2| smith|
+---+------+