SQL坑爹的地方

本文探讨了在Hive SQL中使用LEFT OUTER JOIN时的一个常见误区:即不能直接在ON子句中使用多个连接条件。正确的做法是将多个条件分别放在各自的子查询中。文章通过对比正确与错误的SQL写法,清晰地解释了这一规则。

1  hive的 链接  left  out join 的时候

====================================正确================================================= 

select   sum(a.assistant_total_project )   from (select * from  dw_cds.c_enterprise_active_hbase_daily  where day ='20160912' )   a  
    LEFT OUTER JOIN  (select * from  dw_bds_m.m_pub_enterprise_info   where  dt='20160912' and   run_status =2 )b
  on  a.enterprise_id =b.eid  

====================================错误=================================================

 select   sum(a.assistant_total_project )   from  dw_cds.c_enterprise_active_hbase_daily      a  
    LEFT OUTER JOIN dw_bds_m.m_pub_enterprise_info   b
  on  a.enterprise_id =b.eid   and day ='20160912'   and    dt='20160912' and   run_status =2

====================================结论=================================================

left outer  join的时候  只能on一个条件,不能and多个条件, 多个条件的时候 放在子查询里面。

=====================================================================================



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值