Talend tMap оставил внешнее объединение выводит ноль вместо нуля для несопоставленных строк в первой таблице - PullRequest
0 голосов
/ 30 августа 2018

По умолчанию левое соединение для двух таблиц T1 и T2, возвращают все строки таблицы T1, объединенные результатами сопоставления в таблице T2, для строк T1 без совпадений в T2, левое соединение дополняет их нулями

Допустим, T1 содержит следующую строку

| id | class | student_id | 
|-------------------------|
|  1 | math  |   null     |
|  2 |  svt  |      1     |

и T2 содержит следующую строку:

| id | name | 
|-----------|
|  1 | rach |

результат T1, оставленный присоединенным к T2

select * 
from T1 left join T2 on T1.student_id = T2.id

было бы что-то вроде (я абстрагировал много деталей, чтобы показать проблему)

| id | class | student_id |  id |  name |
|---------------------------------------|
|  1 | math  |   null     | null|  null |
|  2 |  svt  |      1     | 1   |  rach |

В результате выполнения левого соединения с использованием tMap я ожидаю идентичного поведения, что еще более важно, чтобы несопоставленные строки были заполнены нулями вместо нулей

enter image description here

enter image description here

на приведенных выше рисунках показана значительно упрощенная версия эксперимента, показывающая проблему в Talend вкратце, для несопоставленных строк в таблице res_partner выходные данные sales_rep_key имеют значение ноль вместо нуля

Может кто-нибудь объяснить мне это.

1 Ответ

0 голосов
/ 04 сентября 2018

Многое зависит от того, какие исходные данные подходят для вашего варианта использования, как для набора строк main, так и lookup. Если я возьму пример вашей базы данных и внедряю его в Talend, я получу вывод в соответствии с вашими ожиданиями. NULL записей для всех несопоставленных строк / столбцов.

Согласно вашей демонстрации, я вижу, вы пытаетесь выполнить что-то вроде - (sales_rep.id == 0) ? context.sales_rep_unko Но я чувствую, что вы должны использовать как это (ниже - любой из них из комбинации будет делать) вместо этого, когда будут несовпадающие строки из-за left-join в tMap (Relational.ISNULL(sales_rep.id) || sales_rep.id.isEmpty() || sales_rep.id.toString() == null)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...