通过连接获取行
使用“通过连接获取行”操作,可根据匹配的 SQL 连接子句,通过组合一个 (自身连接) 或多个表格中的列来检索行。
“通过连接获取行”操作不支持以下连接类型:
自然连接
交叉连接
* 
在连接条件中,将等运算符与内连接配合使用可实现等值连接。
完成以下步骤,可在工作流中使用“通过连接获取行”操作:
1. “SQL 连接器”下的“通过连接获取行”操作拖动到工作区,并将指针置于该操作上,然后单击 或双击该操作。“通过连接获取行”窗口随即打开。
2. 根据需要编辑“标签”。默认情况下,标签名称与操作名称相同。
3. 要添加 SQL 连接器类型,请参阅支持的 SQL 连接器类型
如果先前已添加连接器类型,请选择相应的“连接器类型”,然后在“连接器名称”下选择连接器。
4. 单击“测试”以验证连接器。
5. 单击“映射连接器”,以使用除当前用于填充输入字段的连接器以外的其他连接器来执行操作。在“运行时连接器”字段中,提供有效的 SQL 连接器名称。有关“映射连接器”的详细信息,请参阅使用映射连接器
6. “表”组下,执行以下操作:
a. “表”列表中,选择相应的数据库表或视图。
b. “别名”字段中,输入表格的别名。此别名用于标识表格。此步骤是可选的。
* 
必须至少选择 2 个表格。要添加 2 个以上的表格,请单击“添加”。单击 可删除已添加的任何表格。
7. “限制”字段中,输入要检索的行数。一次最多可检索 5000 行。
8. “跳过”字段中,输入要从结果中跳过的顶行数。
9. “join 子句 - 使用”列表中,执行以下操作之一:
如果在“join 子句 - 使用”列表中选取“选择”
a. “连接”组下的“左表”列表中,选择表格名称或别名。
b. “连接条件”组下,执行以下操作:
a. “连接类型”列表中,选择下列选项之一:
“内连接”
“左外连接”
“全外连接”
“右外连接”
* 
MySQL 不支持全外连接。
b. “右表”列表中,选择表格名称或别名。
c. “左列”列表中,选择左侧要用于连接条件的列。
在映射的情况下,会为列名称附加表名称。例如,tablename.columnname。如果已指定别名,则会为列名称附加别名。例如:alias.columnname
d. “运算符”列表中,选择相应的条件运算符。
e. “右列”列表中,选择右侧要用于连接条件的列。
在映射的情况下,会为列名称附加表名称/别名。例如,tablename.columnname。如果已指定别名,则会为列名称附加别名。例如:alias.columnname
单击“添加”以添加多个连接条件。单击 可删除已添加的任何连接条件。
如果在“join 子句 - 使用”列表中选取“查询”
“join 子句”字段中,按以下任一 SQL 查询格式输入所有必要输入:
table1 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name
table1 alias1 FULL OUTER JOIN table2 alias2 ON alias1.column_name = alias2.column_name
10. 选择“表单”以为表单中列出的各个输入字段提供输入,或选择“分配 JSON”以通过提供所有必需输入来指定单个 JSON。
如果选择“表单”
a. “选择列”组下,选中“区别”复选框以返回列中的唯一值。此字段是可选的。
b. “列”组下,单击“添加”,然后在“列”列表中,选择要在结果中显示的列。
在映射的情况下,会为列名称附加表名称/别名。例如,tablename.columnname。如果已指定别名,则会为列名称附加别名。例如:alias.columnname
单击“添加”可添加多列。或者,单击 可删除已添加的任何列。
c. Where 组的“子句连接符”列表中,选择下列选项之一:
“与”-“属性”组下指定的所有条件都必须返回 true。
“或”-“属性”组下指定的条件之一必须返回 true。
d. “属性”组下,单击“添加”,然后执行以下操作:
a. “属性”列表中,选择要筛选的列。
在映射的情况下,会为列名称附加表名称/别名。例如,tablename.columnname。如果已指定别名,则会为列名称附加别名。例如:alias.columnname
b. “运算符”列表中,选择相应的条件运算符。
c. “值”字段中,输入用于筛选器的列值。
单击“添加”可将多个属性添加到连接子句中。单击 可删除已添加的任何属性。
如果添加的属性相同,并在“子句连接符”列表中选择了“与”,则属性将以“或”运算符连接。
如果选择“分配 JSON”
“选择列”字段中,以 {"distinct":Boolean Value, "columns":[{"columns":"string"}]} 格式输入所有必要输入。
例如,可在此字段中指定以下值:
{"distinct":true/false, "columns":[{"columns":"tablename.columnname"}]}
{"distinct":true/false, "columns":[{"columns":"alias.columnname"}]}
* 
如果未选择具有主键的列,且未选中“区别”复选框,则仍会在输出架构中返回具有主键的列。
11. “where 子句 - 使用”列表中,执行以下操作之一:
如果在“where 子句 - 使用”列表选取“选择”
a. Where 组的“子句连接符”列表中,选择下列选项之一:
“与”-“属性”组下指定的所有条件都必须返回 true。
“或”-“属性”组下指定的条件之一必须返回 true。
b. “属性”组下,单击“添加”,然后执行以下操作:
a. “属性”列表中,选择要筛选的列。
b. “运算符”列表中,选择相应的条件运算符。
c. “值”字段中,输入用于筛选器的列值。
单击“添加”可将多个属性添加到连接子句中。单击 可删除属性。
如果添加的属性相同,并在“子句连接符”列表中选择了“与”,则属性将以“或”运算符连接。
如果在“where 子句 - 使用”列表选取“查询”
“where 子句”字段中,按以下任一 SQL 查询格式输入所有必要输入:
table1.column1 = 'text value' AND table2.column2 >= 13
alias1.column1 = 'text value' AND alias2.column2 >= 13
12. “顺序”组下,单击“添加”,然后执行以下操作:
a. “列名称”列表中,选择要作为结果排序依据的列。
在映射的情况下,会为列名称附加表名称/别名。例如,tablename.columnname。如果已指定别名,则会为列名称附加别名。例如:alias.columnname
b. “顺序”列表中,选择“升序”“降序”
单击“添加”以添加多个列对结果进行排序。单击 可删除已添加用以排序的列。
13. 单击“完成”
输出架构
“通过连接获取行”操作的输出架构会返回多行。
如果已为表格指定别名,则输出架构会以 alias.columnname 格式返回行。如果尚未为表格指定别名,则输出架构会以 tablename.columnname 格式返回行。
这对您有帮助吗?