hql左外部联接

oxosxuxt  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(357)

我有两个列相同的表,我想找出第一个表中存在但第二个表中不存在的记录。两个表之间的键由三列组成。我正在编写一个Hive查询,如下所示:


* 

Select a.x,b.y from table_1 a left outer join table_2 b on
    a.c1=b.c1 and a.c2=b.c2 and a.c3=b.c3
    where isnull(b.c1) or isnull(b.c2) or isnull(b.c3);

此查询是否正确?如果表\u 1中有100条记录,其中50条与表\u 2匹配,则结果将具有表\u 1中剩余的50行或更多行,因为我在多个属性上使用join并在where条件中使用'or'。

sqxo8psd

sqxo8psd1#

假设列不为null,则通常进行一次比较:

Select a.x, b.y
from table_1 a left outer join
     table_2 b
     on a.c1 = b.c1 and a.c2 = b.c2 and a.c3 = b.c3
where b.c1 is null;

然而,返回 b.y 是相当无用的。你知道它的价值 NULL .

相关问题