2

我尝试使用重复属性加入这些表:

表1

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

其中codes属性是重复属性。

表2

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

我能做些什么?

4

1 回答 1

3

这在一个 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地图中的值配对。

于 2018-08-31T13:13:50.847 回答