У меня есть вход из таблицы A в базе данных A, которую я хотел бы присоединиться к другой таблице B в базе данных B.Pentaho DI - Как использовать «все» результаты предыдущего шага на следующем шаге в качестве запроса «IN»
Это были мои два варианта:
- Использование базы данных Регистрация: Для каждого входа из таблицы в базе данных а, запустите присоединиться запрос в B. базы данных
- Используйте два ввода таблицы (talbeA + TableB) и сделать merge join on key.
Я пошел с опцией № 1, так как я хочу, чтобы не читать в tableA и tableB целиком.
Мой вопрос: Как я могу использовать все результаты с предыдущего шага как один запрос «IN»?
Например
select *
from tableB b
where b.id IN (all_rows_from_prior_step)
по сравнению с (там, где он работает для каждой входной строки)
select *
from tableB b
where b.id = ?
я следовал, как подробно описан в вашем объяснении, однако, если у меня есть десять входных строк, я закончил с десятью в Запросе времени побежал в конце. Похоже, что «Concat Fields» не сглаживает строки в 1 ряд для меня. Я играл с различными опциями в «Конкат-полях», но не играл в кости. – SRS
Извините, мое объяснение было неправильным. См. Обновленное объяснение. – matthiash
Обновленное объяснение делает именно то, что я искал, я получаю один хороший запрос IN! – SRS