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