具有空签入配置单元的左外部联接查询不工作

kq4fsx7k  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(328)

我编写了一个查询来查找存在于一个表中而不存在于另一个表中的记录。这是查询

CREATE TABLE kai_prod.Held1Miss AS 
SELECT distinct jndheld.icerecordid from 
(
SELECT held1.icerecordid,held2.icerecordid icerecordid2 
FROM kai_prod.tblheld116 held1 LEFT OUTER JOIN
kai_prod.tblheld216 held2 ON
held1.icerecordid = held2.icerecordid
) jndheld
WHERE jndheld.icerecordid2 IS NULL;

我在kaièu prod.held1miss得到了266585的数据
但是,当我使用下面的查询再次检查时,我发现上面的计数是错误的。上面的计数应该是零

select count(*) from kai_prod.tblheld116 INNER JOIN
kai_prod.Held1Miss ON
tblheld116.icerecordid = Held1Miss.icerecordid;

266585
这是配置单元中的错误还是null问题?
请查找版本详细信息。
我们正在azure的microsoft hdinsight发行版上运行带有spark的hadoop
配置单元--版本配置单元1.2.1000.2.6.2.3-1 subversiongit://ctr-e134-1499953498516-137771-01-000004.hwx.site/grid/0/jenkins/workspace/hdp-parallel-ubuntu16/sources/hive -r 4e24791861b0ce72f1185e572ffe1fd7f737dfdd由jenkins于2017年9月14日星期四08:04:15从源代码处编译,校验和为77da03c67efbe84d5e5b69bd4d91ad54
hadoop版本hadoop 2.7.3.2.6.2.3-1 subversiongit@github.com:hortonworks/hadoop.git-r 1ceeb58bbbb5904df0cbb7983389bcaf2ffd0b6由jenkins于2017-09-14t07:25z使用protoc 2.5.0从源代码处编译,校验和为90b73c4c185645c1f47b61f942230此命令使用/usr/hdp/2.6.2.3-1/hadoop/hadoop-common-2.7.3.2.6.3-1.jar运行

to94eoyn

to94eoyn1#

我认为你的第二个sql可能错了:

select count(*) from kai_prod.tblheld116 INNER JOIN
kai_prod.Held1Miss ON
tblheld116.icerecordid = Held1Miss.icerecordid;

您应该加入kai\u prod.tblheld216表,而不是kai\u prod.tblheld116表来双重检查null键

7qhs6swi

7qhs6swi2#

左外联接将始终从左表生成行。
请使用内部联接来获取所需的结果。
谢谢您

相关问题