Redshift中如何对Super列元素实现左外连接查询?
实现左外连接保留所有订单的查询
把原来的隐式内连接改成左外连接,并将order_attribute_type = 'ABC'的条件放到连接的ON子句中,而不是WHERE子句,就能保留所有订单,没有匹配到的elem1字段会显示为null:
select o.order_id, element1.order_attribute_value elem1 from order o left join o.order_attribute_grp element1 on element1.order_attribute_type = 'ABC'
原查询的问题说明
原来用逗号分隔表的写法属于隐式内连接,WHERE子句里的条件会直接过滤掉所有不满足element1.order_attribute_type = 'ABC'的记录,包括没有对应属性组的订单。而左外连接会强制保留左表(order)的所有行,右表(order_attribute_grp)没有匹配数据的字段就会自动填充null。
内容的提问来源于stack exchange,提问作者carfield
相关产品推荐
相关产品推荐

