问题描述
[
{
"id": 1,"firstName": "noufal","lastName": "P","email": "[email protected]","roles": [
{
"id": 1,"roleName": "Admin"
},{
"id": 2,"roleName": "Accuryn"
}
]
},{
"id": 4,"firstName": "sample","lastName": "testuser","email": "[email protected]","roles": [
{
"id": 3,"roleName": "Lookup"
},"roleName": "Accuryn"
},{
"id": 1,"roleName": "Admin"
}
]
},{
"id": 50,"firstName": "hemanth","lastName": "np","email": "[email protected]","roleName": "Admin"
}
]
}
]
我的 Postgres 函数如下
CREATE OR REPLACE FUNCTION public.user_get_all()
RETURNS TABLE(j json)
LANGUAGE plpgsql
AS $function$
BEGIN
RETURN QUERY
SELECT row_to_json(u)
FROM (select U.ID,FirsTNAME,LASTNAME,EMAIL,json_agg(to_json(rl.*)) as roles
from USERS U
LEFT JOIN ( select ur.USERID,((r.*))
from USERS U
left join USERROLES UR on U.ID =UR.USERID
left join ROLES R on R.ID =UR.ROLEID WHERE ur.ACTIVE =1 and r.ACTIVE =1
GROUP BY ur.ID,R.ID,R.ROLENAME) rl ON rl.USERID=u.ID
GROUP by U.ID,EMAIL) u;
END;
$function$
;
我需要更改角色输出。不需要数组。我需要角色:Admin,Accuryn only。 示例,下面给出了想要的输出。
[
{
"id": 1,"roles": "Admin","Accuryn"
},"roles": "Lookup","Accuryn","Admin"
}
]
那么,如何像上面的例子一样获取输出。主要需要角色数组数据聚合。你能帮我找到解决办法吗。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)