与超级列的元素进行红移左外连接

问题描述 投票:0回答:1

为了获取超级列的元素数据,我可以运行如下查询:

select order_id, element1.order_attribute_value elem1 from order o, o.order_attribute_grp element1 where element1.order_attribute_type = 'ABC'

但是,对于没有 order_attribute_type = 'ABC' 的订单,它不会包含在结果集中。我怎样才能做类似左外连接的事情,以便没有 order_attribute_type = 'ABC' 的订单在结果集中的 elem1 处将为 null?

amazon-redshift
1个回答
0
投票

您需要将其与源表左连接以获得您想要的结果。虽然此语法看起来像联接,但事实并非如此。它是数组数据的取消嵌套。主要区别在于取消嵌套仅扫描表一次,而自联接将扫描表两次。

对表的扫描将消除不满足 WHERE 子句的数据。需要对表进行第二次扫描以添加回没有匹配超级列信息的行。

© www.soinside.com 2019 - 2024. All rights reserved.