fullouter 联接
fullouter
联接合并了应用左外部联接和右外部联接的效果。 对于表中缺少匹配行的列,结果集包含 null
值。 对于那些匹配的记录,结果集中会生成单个行,其中包含两个表中填充的字段。
语法
LeftTable|
join
kind=fullouter
[ Hints ] RightTableon
Conditions
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
LeftTable | string |
✔ | 要合并其行的左侧表或表格表达式(有时称为外部表)。 表示为 $left 。 |
提示 | string |
零个或零个以上(以空格分隔)以 Name = Value 形式表示的联接提示,用于控制行匹配操作和执行计划的行为。 有关详细信息,请参阅提示。 |
|
RightTable | string |
✔ | 要合并其行的右侧表或表格表达式(有时称为内部表)。 表示为 $right 。 |
条件 | string |
✔ | 确定 LeftTable 中的行如何与 RightTable 中的行匹配。 如果要匹配的列在两个表中具有相同的名称,请使用语法 ON ColumnName。 否则,请使用语法 ON $left. LeftColumn== $right. RightColumn。 若要指定多个条件,可以使用“and”关键字,也可以使用逗号分隔它们。 如果使用逗号,则将使用“and”逻辑运算符来计算条件。 |
提示
为获得最佳性能,如果某个表始终小于另一个表,则将其用作 join 的左侧。
提示
参数名称 | 值 | 说明 |
---|---|---|
hint.remote |
auto 、left 、local 、right |
请参阅跨群集联接 |
hint.strategy=broadcast |
指定在群集节点上共享查询负载的方式。 | 请参阅广播联接 |
hint.shufflekey=<key> |
shufflekey 查询使用键将数据分区,在群集节点上共享查询负载。 |
请参阅 shuffle 查询 |
hint.strategy=shuffle |
shuffle 策略查询会在群集节点上共享查询负载,其中的每个节点将处理一个数据分区。 |
请参阅 shuffle 查询 |
返回
架构:两个表中的所有列,包括匹配的键。
行:两个表中的所有记录,其中不匹配的单元格填充为 null。
示例
let X = datatable(Key:string, Value1:long)
[
'a',1,
'b',2,
'b',3,
'c',4
];
let Y = datatable(Key:string, Value2:long)
[
'b',10,
'c',20,
'c',30,
'd',40
];
X | join kind=fullouter Y on Key
输出
键 | Value1 | Key1 | Value2 |
---|---|---|---|
a | 1 | ||
b | 2 | b | 10 |
b | 3 | b | 10 |
c | 4 | c | 20 |
c | 4 | c | 30 |
d | 40 |
相关内容
- 了解其他联接方式