一尘不染

为什么Hive查询不支持IN / EXIST运算符?

sql

我看一下Hive语言手册

并且认识到Hive查询不支持IN / EXIST运算符,因此他们建议使用LEFT SEMI JOIN作为替代。你知道原因吗?


阅读 148

收藏
2021-05-16

共1个答案

一尘不染

这让我想起了Eric Lippert提出的问题:“为什么C#没有Java功能X?”
人们不会从一开始就删除另一种东西来构建一种语言,而是一无所有并决定要实现的功能。

在某些时候,配置单元既不支持IN \ EXISTS子查询,也不支持LEFT SEMI JOIN。然后,有人建议他们添加LEFT SEMI
JOIN
。既然已经使用了该语言,那么它就消除了实现IN \
EXISTS子查询的一些原因,因为这两个子句在语义上是等效的。

2021-05-16