我在 postgres 数据库中有以下记录。parent_pk 与父子关系中的 pk 相关。
pk 名称类型 parent_pk --- ---- ---- --------- 1 hnumber101 房子 0 2 hnumber201 房子 0 101 dodge_charger 车辆 1 102野马车1 103 民用车 2 301约翰用户101 302 爱德华用户 102 303 约翰用户 102 304 约翰用户 103 我想从上面生成一个json,格式如下- [ { “身份证”:1, “名称”:“hnumber101”, “类型”:“房子” “孩子”: [ { “身份证”:101, "name": "道奇充电器", “类型”:“车辆” “孩子”: [{ “身份证”:301, “姓名”:“约翰”, “类型”:“用户” }], }, { “身份证”:102, “名称”:“野马”, “类型”:“车辆” “孩子”: [{ “身份证”:303, “姓名”:“约翰”, “类型”:“用户” }, { “身份证”:302, “姓名”:“爱德华”, “类型”:“用户” }], }], }, { “身份证”:2, “名称”:“hnumber201”, “类型”:“房子” “孩子”: [ { “身份证”:103, “名称”:“公民”, “类型”:“车辆” “孩子”: [{ “身份证”:304, “姓名”:“约翰”, “类型”:“用户” }], }], }]
我曾尝试使用 WITH RECURSIVE 查询,但这会产生条目列表,然后我必须在我的 java 代码中进行大量循环/散列映射,才能在父级中获取该子块。最有效的方法是什么?