0

我有来自数据库 A 中的表 A 的输入,我想加入到数据库 B 中的另一个表 B。

这是我的两个选择:

  1. 使用数据库连接:对于数据库 A 中表的每个输入,在数据库 B 中运行连接查询。
  2. 使用两个输入表(talbeA + tableB)并在键上进行合并连接。

我选择了选项#1,因为我想避免在 tableA 和 tableB 中完整阅读。

我的问题是:如何将上一步的所有结果用作一个“IN”查询?

例如

select *
from tableB b
where b.id IN (all_rows_from_prior_step)

与(它为每个输入行运行的位置)

select *
from tableB b
where b.id = ?
4

1 回答 1

0

使用“分组依据”将行扁平化为一行,其中包含逗号分隔的 id 字段“all_rows_from_prior_step”(组字段:空,名称:all_rows_from_prior_step,主题:id,类型:“用 , 分隔的连接字符串”)。接下来,使用“用户定义的 Java 表达式”来构建 sql 查询:

"select * from tableB b where b.id IN (" + all_rows_from_prior_step + ")"

最后,使用“动态 SQL 行”运行查询。模板 sql 可以是

select * from tableB b where 1=0

于 2016-08-01T09:11:53.017 回答