我有2个Oracle表
table_1:
ID target_id name url
1 A John example.org
2 B Jane helloworld.com
table_2:
id1 target_id col1 col2
X A aaa bbb
Y A ccc ddd
字符串
我试图运行查询连接table_1和table_2与target_id,并获得类似于以下的JSON(使用Java)
[{"id": 1, "name"="John", "url": "example.org",
"target": [{"id1":"X", "col1": ...}, {"id1":"Y", "col1": ...}]
},
{"id": 2, "name"="Jane", "url": "helloworld.com"}]
型
我们现在做的是迭代table_1,对于每一行,从table_2中选择,并将对象添加到列表中,最后将其序列化为JSON。
这是不是一个更好的方法,而不是在Oracle中的循环嵌套SQL?
2条答案
按热度按时间xzabzqsa1#
使用
JSON_ARRAYAGG
和JSON_OBJECT
:字符串
其中,对于样本数据:
型
输出:
| DATA |
| ------------ |
| [{"id":1,"name":"John","url":"example.org ","target":[{"id1":"X","col1":"aaa","col2":"bbb"},{"id1":"Y","col1":"ccc","col2":"ddd"}]},{"id":2,"name":"Jane","url":"helloworld.com "}] |
fiddle
polkgigr2#
table1:table2 = 1:N?
字符串