Spark

left_join on

2023-03-10  本文已影响0人  Eqo

left join on on后边如果是主表条件 结果集中会有 但不参与join

总结:Hive SQL 中 LEFT JOIN 单独针对左表的过滤条件必须放在WHERE上,放在ON上的效果是不可预期的,单独针对右表的查询条件放在ON上是先过滤右表,再和左表联表,放在WHERE条件上则是先联表再过滤,语义上存在差别。

列如 以下题目


fd7605ca75768e9aad17a02fb6b1ce7.jpg

先写结果
left join on 后边是主表条件 结果集中会有 但不参与join

语句一的结果

select *
from db_spark_sql.ta a
left join db_spark_sql.tb b
on  a.id = b.id and a.id>2;
/*
预测结果 :
ta          tb
1           null
2           null
4           4
null        null
*/

语句二


1 
2   2    
2   2
3
null

上一篇下一篇

猜你喜欢

热点阅读