Hive 中 left outer join 与 left semi-join 的区别
测试数据为:

1. left outer join
语句:
select * from table1 left outer join table2 on(table1.student_no=table2.student_no);
结果:
可以看到left outer join左边表的数据都列出来了,如果右边表没有对应的列,则写成了NULL值。
同时注意到,如果左边的主键在右边找到了N条,那么结果也是会叉乘得到N条的,比如这里主键为1的显示了右边的3条。
2.left semi-join
语句:
select * from table1 left semi join table2 on(table1.student_no=table2.student_no);
结果:
可以看到,只打印出了左边的表中的列,规律是如果主键在右边表中存在,则打印,否则过滤掉了。
结论:
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230190.html原文链接:https://javaforall.net
