json - 如何查询sqlite json1
问题描述
我是使用带有 JSON1 的 SQLite 3 的新手。我想查询json文件。
这是我的 json 文件
{
"customer": {
"_id": "6a7e5fbd48a14d39aedb23ab104c1d44",
},
"invoices": [{
"_id": "12db73e71874f0db72bf1a44de02ee69",
"invoice": 215,
"payments": [{
"invoice_id": "12db73e71874f0db72bf1a44de02ee69",
}
],
"items": [{
"invoice_id": "12db73e71874f0db72bf1a44de02ee69",
"given_id": "TBC0003B",
}
]
}, {
"_id": "5feade559d6ff105f6c8fce7d6e4278f",
"invoice": 149,
"payments": [{
"invoice_id": "5feade559d6ff105f6c8fce7d6e4278f",
}
],
"items": [{
"invoice_id": "5feade559d6ff105f6c8fce7d6e4278f",
"given_id": "TBC0002B",
}
]
}, {
"_id": "28cfd52546e7527b8bb1d6bc0b92ae44",
"invoice": 136,
"payments": [{
"invoice_id": "28cfd52546e7527b8bb1d6bc0b92ae44",
}
],
"items": [{
"invoice_id": "28cfd52546e7527b8bb1d6bc0b92ae44",
"given_id": "TBC0002B",
}
]
}, {
"_id": "11377999af6610dd9956e4608acd6953",
"invoice": 117,
"payments": [{
"invoice_id": "11377999af6610dd9956e4608acd6953",
}
],
"items": [{
"invoice_id": "11377999af6610dd9956e4608acd6953",
"given_id": "BAP0009A",
}, {
"invoice_id": "11377999af6610dd9956e4608acd6953",
"given_id": "FSS0024B",
}, {
"invoice_id": "11377999af6610dd9956e4608acd6953",
"given_id": "DJX0001E",
}, {
"invoice_id": "11377999af6610dd9956e4608acd6953",
"given_id": "LPHEHSM",
}, {
"invoice_id": "11377999af6610dd9956e4608acd6953",
"given_id": "MSN0037",
}, {
"invoice_id": "11377999af6610dd9956e4608acd6953",
"given_id": "MSO0008.6.5",
}, {
"invoice_id": "11377999af6610dd9956e4608acd6953",
"id": "TBC0001A",
}
]
}
]
}
当我查询如下:
sqlite> SELECT json_extract(data, '$.customer._id') , A.value , B.value FROM dataset,json_tree(data) AS A,json_tree(data) AS B WHERE (A.key='invoice' and A.value != 0) AND (B.key='given_id' and B.value NOT LIKE '6%');
我得到的结果为
149,MSO0008.6.5 6a7e5fbd48a14d39aedb23ab104c1d44,149,TBC0001A 6a7e5fbd48a14d39aedb23ab104c1d44,136,TBC0003B 6a7e5fbd48a14d39aedb23ab104c1d44,136,TBC0002B 6a7e5fbd48a14d39aedb23ab104c1d44,136,TBC0002B 6a7e5fbd48a14d39aedb23ab104c1d44,136,BAP0009A 6a7e5fbd48a14d39aedb23ab104c1d44,136,FSS0024B 6a7e5fbd48a14d39aedb23ab104c1d44,136,DJX0001E 6a7e5fbd48a14d39aedb23ab104c1d44,136,LPHEHSM 6a7e5fbd48a14d39aedb23ab104c1d44,136,MSN0037 6a7e5fbd48a14d39aedb23ab104c1d44,136,MSO0008.6.5 6a7e5fbd48a14d39aedb23ab104c1d44,136,TBC0001A。. . DJX0001E 6a7e5fbd48a14d39aedb23ab104c1d44,136,LPHEHSM 6a7e5fbd48a14d39aedb23ab104c1d44,136,MSN0037 6a7e5fbd48a14d39aedb23ab104c1d44,136,MSO0008.6.5 6a7e5fbd48a14d39aedb23ab104c1d44,136,TBC0001A . . . DJX0001E 6a7e5fbd48a14d39aedb23ab104c1d44,136,LPHEHSM 6a7e5fbd48a14d39aedb23ab104c1d44,136,MSN0037 6a7e5fbd48a14d39aedb23ab104c1d44,136,MSO0008.6.5 6a7e5fbd48a14d39aedb23ab104c1d44,136,TBC0001A . . .
其实我想得到的结果是:
6a7e5fbd48a14d39aedb23ab104c1d44,215,TBC0003B 6a7e5fbd48a14d39aedb23ab104c1d44,149,TBC0002B 6a7e5fbd48a14d39aedb23ab104c1d44,136,TBC0002B 6a7e5fbd48a14d39aedb23ab104c1d44,117,BAP0009A 6a7e5fbd48a14d39aedb23ab104c1d44,117,FSS0024B 6a7e5fbd48a14d39aedb23ab104c1d44,117,DJX0001E 6a7e5fbd48a14d39aedb23ab104c1d44,117,LPHEHSM 6a7e5fbd48a14d39aedb23ab104c1d44,117,MSN0037 6a7e5fbd48a14d39aedb23ab104c1d44,117,MSO0008.6.5 6a7e5fbd48a14d39aedb23ab104c1d44,117 ,TBC0001A
你能教我怎么做吗?谢谢。
解决方案
推荐阅读
- sql - 更新查询连接表
- javascript - 字符串到数字的嵌套数组
- datetime - ionic 3 ion-datetime 可以选择无效日期
- ios - Dispatch Queue 中的 Dispatch Queue Priority 和 QoS 有什么区别?
- gnuradio - GNU Radio 循环缓冲区操作
- windows-installer - 自动升级基于 MSI 的应用程序的最佳做法是什么?
- ruby - 无法向使用 docker 和 docker-compose 运行的 sinatra 应用程序发送请求
- swift - Swift 4:更改数组长度的最佳方法?
- android - 下载后如何读取文件并在android的pdf查看器中显示
- macos - 如何以编程方式取消最小化 NSWindow ?