为了获取超级列的元素数据,我可以运行如下查询:
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?
您需要将其与源表左连接以获得您想要的结果。虽然此语法看起来像联接,但事实并非如此。它是数组数据的取消嵌套。主要区别在于取消嵌套仅扫描表一次,而自联接将扫描表两次。
对表的扫描将消除不满足 WHERE 子句的数据。需要对表进行第二次扫描以添加回没有匹配超级列信息的行。