hive里的LEFT SEMI JOIN是什么JOIN?

  算法/数据结构/数据库 sql    浏览次数:325        分享
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



  相关主题

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

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

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

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

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

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

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

sql里where和having的区别是什么?   1回答

sql中limit m, n是什么意思?   2回答

sql里cross join有什么作用?   1回答

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

sql里nullif怎么用?   1回答



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

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

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

我们谢绝答非所问。

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

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