我可以从SQLITE JSON1扩展中获得UNION结果,但是会产生两个JSON对象,即两个“ Result”对象。如何从SQLITE查询中获取单个JSON对象?
查询:
SELECT json_object('Result',
json_array(
json_object('ID',
json_group_array(id),
'Data',
json_group_array(data)
)
) FROM table1
UNION
SELECT json_object('Result',
json_array(
json_object('timestamp',
json_group_array(ts),
'name',
json_group_array(name)
)
) FROM table2;
我得到的是
{
"Result":
[{
"id":[1,2,3],
"data":[10,20,30]
}]
}
{
"Result":
[{
"timestamp":[1200,1230,1300,1330,1400],
"name":[Ada,Bella,Candy,Dolly,Ella]
}]
}
我希望的是
{
"Result":
[{
"id":[1,2,3],
"data":[10,20,30],
"timestamp":[1200,1230,1300,1330,1400],
"name":[Ada,Bella,Candy,Dolly,Ella]
}]
}
答案 0 :(得分:1)
您可以使用子查询来实现:
SELECT
JSON_OBJECT('Result',
JSON_ARRAY(
JSON_OBJECT('id',
(SELECT JSON_GROUP_ARRAY(id) FROM table1),
'data',
(SELECT JSON_GROUP_ARRAY(data) FROM table1),
'timestamp',
(SELECT JSON_GROUP_ARRAY(ts) FROM table2),
'name',
(SELECT JSON_GROUP_ARRAY(name) FROM table2)
)
)
);