通过连接获取行
使用“通过连接获取行”操作,可根据匹配的 SQL 连接子句,通过组合一个 (自身连接) 或多个表格中的列来检索行。
“通过连接获取行”操作不支持以下连接类型:
自然连接
交叉连接
* 
在连接条件中,将等运算符与内连接配合使用可实现等值连接。
完成以下步骤,可在工作流中使用“通过连接获取行”操作:
1. “SQL 连接器”下的“通过连接获取行”操作拖动到工作区,并将指针置于该操作上,然后单击 或双击该操作。
“通过连接获取行”窗口随即打开。
2. 根据需要编辑“标签”。默认情况下,标签名称与操作名称相同。
3. “数据库”列表中,选择要连接的数据库类型:
PostgreSQL
SQL Server
MySQL
Oracle
4. 根据所选数据库的类型,添加数据库连接。要添加新连接,请参阅 添加 SQL 连接器连接
如果先前已添加 SQL 连接器连接,请从列表中选择一个连接。
5. “表”组下,执行以下操作:
a. “表”列表中,选择相应的数据库表或视图。
b. “别名”字段中,输入表格的别名。此别名用于标识表格。此步骤是可选的。
* 
必须至少选择 2 个表格。要添加 2 个以上的表格,请单击“添加”。或者,单击 删除已添加的所有表格。
6. “限制”字段中,输入要检索的行数。一次最多可检索 5000 行。
7. “跳过”字段中,输入要从结果中跳过的顶行数。
8. “连接”组下的“左表”列表中,选择表格名称或别名。
9. “连接条件”组下,执行以下操作:
a. “连接类型”列表中,选择下列选项之一:
“内连接”
“左外连接”
“全外连接”
“右外连接”
* 
MySQL 不支持全外连接。
b. “右表”列表中,选择表格名称或别名。
c. “左列”列表中,选择左侧要用于连接条件的列。
在映射的情况下,会为列名称附加表名称。例如,tablename.columnname。如果已指定别名,则会为列名称附加别名。例如:alias.columnname
d. “运算符”列表中,选择相应的条件运算符。
e. “右列”列表中,选择右侧要用于连接条件的列。
在映射的情况下,会为列名称附加表名称/别名。例如,tablename.columnname。如果已指定别名,则会为列名称附加别名。例如:alias.columnname
单击“添加”以添加多个连接条件。或者,单击 删除已添加的任何连接条件。
10. “选择列”组下,单击“添加”,然后执行以下操作:
a. “列”字段中,选择要在结果中显示的列。
在映射的情况下,会为列名称附加表名称/别名。例如,tablename.columnname。如果已指定别名,则会为列名称附加别名。例如:alias.columnname
单击“添加”可添加多列。或者,单击 删除您已添加的任何列。
11. Where 组的“子句连接符”列表中,选择下列选项之一:
“与”-“属性”组下指定的所有条件都必须返回 true。
“或”-“属性”组下指定的条件之一必须返回 true。
12. “属性”组下,单击“添加”,然后执行以下操作:
a. “属性”列表中,选择要筛选的列。
在映射的情况下,会为列名称附加表名称/别名。例如,tablename.columnname。如果已指定别名,则会为列名称附加别名。例如:alias.columnname
b. “运算符”列表中,选择合适的条件运算符。
c. “值”字段中,输入用于筛选器的列值。
单击“添加”可将多个属性添加到连接子句中。或者,单击 删除属性。
如果添加的属性相同,并在“子句连接符”列表中选择了“与”,则属性将以“或”运算符连接。
13. “顺序”组下,单击“添加”,然后执行以下操作:
a. “列名称”列表中,选择要作为结果排序依据的列。
在映射的情况下,会为列名称附加表名称/别名。例如,tablename.columnname。如果已指定别名,则会为列名称附加别名。例如:alias.columnname
b. “顺序”列表中,选择“升序”“降序”
单击“添加”以添加多个列对结果进行排序。或者,单击 删除已添加用以排序的列。
14. 单击“完成”
输出架构
“通过连接获取行”操作的输出架构会返回多行。
如果已为表格指定别名,则输出架构会以 alias.columnname 格式返回行。如果尚未为表格指定别名,则输出架构会以 tablename.columnname 格式返回行。
下图显示了示例输出架构: