Redshift左联接,带过滤器滴不匹配的记录

时间:2019-04-08 01:37:06

标签: sql amazon-redshift

在下面的示例查询中,我在#txn中有3个ID,而其中一个ID不在#lkp中。

当我离开包含#lkp过滤器的联接以排除某些grp值时,其中一条记录被删除。我期望的输出是即使#txn中的所有记录与#lkp中的任何记录都不匹配,仍将其保留在我的#txn中。

这是所有SQL(MS SQL,MYSQL等)的标准行为吗?

drop table if exists #txn;
create table #txn(
  id int,
  var1 int
);

drop table if exists #lkp;
create table #lkp(
  id int,
  grp int
);

insert into #txn values (101,123);
insert into #txn values (102,456);
insert into #txn values (103,789);

insert into #lkp values (101,0);
insert into #lkp values (103,1);

select
  a.id,
  a.var1
from #txn a
left join #lkp b on (a.id = b.id)
where b.grp not in(10,20)
;

0 个答案:

没有答案