sql掉坑记录

SQL环境: 阿里MAXCompute

大致的语句

 

@existgroup :=
  select group_name,
         device_name
  from a.table1 
;

@existinterface := SELECT
                   group_name,
                   device_name
                   from b.table2
                   ;


    select
    t1.group_name,
    t1.device_name,
    t2.group_name as t2_group_name,
    t2.device_name as t2_device_name
    from
    (select distinct group_name,
                     device_name
                      from @existgroup )t1
     left join   (
        SELECT distinct
       group_name,
       device_name
        from @existinterface 
      )t2
    where t1.group_name = t2.group_name
    and t1.device_name = t2.device_name
 )t12
;

 

这个语句始终没法发现t2比t1少的那些行(left join 是outer join应该能找出差异项)。调试了很久后来发现在left join上,SQL语法编译器提示如下:

outer join will be treated as inner join because of filtration: t1.group_name = t2.group_name

这才反应过来:left join 作为outer join的一种,后面得使用on 

问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值