作为背景,我已经设置了 100 个 redshift 查询,比这复杂得多,但我认为我必须遗漏一些简单的东西。
我在表 1 和表 2 之间进行左外连接。这些表本质上是这样的:
Table1
Col1 Col2 Col3
A C E
A D F
Table2
Col 1 Col2 Col3
A C Z
我没有 where 语句。我的声明是:
on Table1.Col1 = Table2.Col1 and Table1.Col2 = Table2.Col2
我的结果表是:
ResultTable:
Col1 Col2 Col3 Col4
A C E Z
我期待:
ExpectedTable:
Col1 Col2 Col3 Col4
A C E Z
A D F Null
我错过了什么?谢谢。
最佳答案
这可能不是您的问题,但如果连接中使用的任何列为空,即使连接两侧的列值为空,Redshift 也不会使用相等运算符匹配记录。
为了处理这个问题,为每个连接添加一个或条件,检查双方是否为空。
例如((a.col1 = b.col1) or (a.col1 is null and b.col1 is null))
关于sql - Redshift 左外连接忽略空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28080883/