hive left join on关联后用in条件过滤问题

阅读 28

2024-08-10

当left 或 inner join 关联条件 需要查另外一个表中字段,则可以使用下面的方法。

下面语法是错误写法,运行不会通过。

select t1.* from t1 
left join t2 on t1.acct_no = t2.acct_no
and t1.code in (select type1 from tt)

下面是正确的实现思路,提前在主表中,做好打标字段处理。

select t1.* 
from (
select 
*,
case when tt.type1 is not null then 1 else 0 end as flag
from t1
left join tt
on code = type1
 )t1
left join t2 on t1.acct_no = t2.acct_no
and flag = 1

精彩评论(0)

0 0 举报