我有一个users表,它的列如下 id
, name
, email
,等等。我想在单个json对象中以以下格式检索某些用户的信息:
{
"userId_1" : {"name" : "A", "email": "A@gmail.com"},
"userId_2" : {"name" : "B", "email": "B@gmail.com"}
}
其中用户是唯一的 id
是键,包含其信息的json是其对应的值。
我可以在两个单独的行中使用 json_build_object
但我希望它以一个json对象的形式出现在一行中。
3条答案
按热度按时间brc7rcf01#
您可以使用json聚合函数:
jm81lzqq2#
试试看-
下面的链接可能会有所帮助https://hashrocket.com/blog/posts/faster-json-generation-with-postgresql
55ooxyrt3#
试试这个:
从(select id,json\u build\u object('name',name,'email',email)中选择json\u object(array\u agg(id),array\u agg(json::text))作为json from users\u table)一些\u别名\u name
如果您的id不是文本类型,那么您也必须将其转换为文本。