sql - 如何将两个 postgres 列组合为单个值(json 对象)
问题描述
我正在尝试在我的food.list表上写一个查询:
categories | items
----------------------------
dairy | ["milk", "cheese"]
fruit | ["apples", "pears", "grapes"]
vegetables | ["carrots"]
并返回一个带有单行的selected_foods列。我希望该行的值是一个具有类别(键)列表和项目(值)数组的对象。
selected_foods
------------------------------------
{
dairy: ["milk", "cheese"],
fruit: ["apples", "pears", "grapes"],
vegetables: ["carrots"]
}
到目前为止,我已经尝试过:
SELECT json_agg(json_build_object(categories, items::json))::json
AS selected_foods
FROM food.list
但这会返回一个对象数组,即:
selected_foods
------------------------------------
[
{ dairy: ["milk", "cheese"] },
{ fruit: ["apples", "pears", "grapes"] },
{ vegetables: ["carrots"] }
]
我想我太早地应用了json_build_object函数......或者我可能需要在之后再次打开它们?
任何帮助都会很棒,谢谢:)
解决方案
推荐阅读
- php - Laravel hasMany 来自同一张表的先决条件
- java - 按下删除按钮时如何获取相应的名称
- python - 尝试使用 Spinbox 和 RadioButtons 将列表的一部分添加到另一部分
- c# - C# wpf 如何将变量 Excel.Worksheet 从 Button_Click 传递到另一个 Button_Click
- path - 关于图论中路径定义的困惑
- express - 如何不在 expressjs 上监听 3000 端口?
- java - 如何将多部分文件转换为java中的文件
- javascript - 当绘制 2 个甜甜圈时,D3JS 图形甜甜圈未显示一些楔形
- sql-server - 在 SQL Server 中筛选多行
- postgresql - 使用 md5 密码登录 postgresql