Documentum DQL объединяет повторяющийся атрибут - PullRequest
0 голосов
/ 31 августа 2018

Я пытался объединить эти таблицы, используя повторяющийся атрибут:

table1

r_object_id           codes
...                   1,2,3,4,5
...                   7,6,3,4,5
...                   1,5,4,2,3

Где codes атрибут является повторяющимся атрибутом.

table2

r_object_id      name      code
...              hello      1
...              aba        2
...              father     3
...              mother     4
...              hello2     5
...              hello3     6
...              hello4     7

Я хочу такой результат:

table1.r_object_id      names
...                     hello,aba,father,mother,hello2

Что я могу сделать?

1 Ответ

0 голосов
/ 31 августа 2018

Это невозможно в одном запросе DQL. Но у вас есть несколько вариантов, как это решить.

1) Использование одного DQL, но по одной строке на одно повторяющееся значение:

SELECT DISTINCT t1.r_object_id, t2.name FROM table1 t1, table2 t2 WHERE t1.codes = t2.code ENABLE(ROW_BASED)

Результат будет таким:

r_object_id      name
0900ad1234567890 hello
0900ad1234567890 aba
0900ad1234567890 father
0900ad1234567890 mother
0900ad1234567890 hello2
0900ad1234567891 father
0900ad1234567891 mother
...

2) Сопряжение значений в приложении - например, с использованием Java. Где вы выбираете все записи из table2 одним запросом и сохраняете их в Map<String, String> codeTable, где атрибут code является ключом, а атрибут name - значением. Затем выберите записи из table1 по другому запросу и сопоставьте значения из повторяющегося атрибута ( коды ) со значениями из карты codeTable.

...