hive里的LEFT SEMI JOIN是什么JOIN?

  算法/数据结构/数据库 sql    浏览次数:816        分享
0

从没有听说过semi join

 

古力夬   2019-10-15 12:03



   1个回答 
3

用法如下

SELECT * FROM tab1 LEFT SEMI JOIN tab2 ON (tab1.id = tab2.id);

left semi join和left outer join相似,也和inner join有点相似。但left semi join只返回tab1中的列,不是完整的join,所以是semi join

和left outer join相似:因为left semi join只返回左表里的

和inner join相似:因为left semi join不返回右边里没有的

比如tab1,tab2是

它们inner join的结果是

它们left join的结果是

它们left semi join的结果是

因为表tab1中只有一个id=2,尽管tab2中有多个id=2,我们也只匹配一个,最后返回的时候只得到tab1中的列


SofaSofa数据科学社区DS面试题库 DS面经

sasa   2019-10-18 06:16



  相关主题

mysql如何获得某字段的最大值所在行?   1回答

mysql数据库中怎么从一个表里随机抽取k行?   2回答

mysql里的锁是什么意思?   1回答

sql里的table和view有什么区别?   2回答

NoSql数据库是什么样的?   1回答

mysql里获取中位数和四分位数的函数是什么?   2回答

mysql里ORDER BY的默认排序是什么?   2回答

SQL里UNION和UNION ALL的区别是什么?   2回答

增量表、全量表分别是什么意思   1回答

mysql怎么对每个group只选2行?   1回答

sql怎么对数据表里的一列中文字符串按照拼音顺序排序?   1回答

sql里nullif怎么用?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!