json - 如何从 SQLITE UNION 查询中获取单个 JSON 对象?
问题描述
我可以从 SQLITE JSON1 扩展获得 UNION 结果,但会产生两个 JSON 对象,即两个“结果”对象。如何从 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]
}]
}
解决方案
您可以使用子查询来实现这一点:
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)
)
)
);
推荐阅读
- linux - top 命令在linux中是如何工作的?它如何提供实时输出?
- amazon-web-services - 如何在同一 AWS EB 应用程序中托管基于不同版本的路由
- elasticsearch - ElasticSearch 日期范围查询不适用于自定义日期格式
- javascript - 从我的 React 组件中的文本中打印字母,就像旧的视频游戏一样
- ios - 无法添加钥匙串项。错误 - 使用 KeychainItemWrapper 更改标识符后出现 25299?
- javascript - 我们可以同时使用 `export default` 和 `module.exports` 吗?
- angular - 为不同的 REST / WebServices 配置不同的 Angular 6 HttpClient 标头
- jquery - jQuery 选择菜单 onchange
- forms - 表单在元素 UI 中缓存错误的字段
- sql-server - 在 spring 中使用自定义 MSSQL 查询