如何从具有原始表的另一个表中选择属性
答案 0 :(得分:1)
您应该修复数据模型。您应该有三个表:
users
:每位用户一行groups
:每组一行user_groups
:每个用户/组组合一行对于您的数据模型,我将使用数组来取消透视值,然后重新聚合:
与JSON相比,我更喜欢使用数组,因此我将使用:
select ug.type,
(select array_agg(u.name)
from (unnest(array[ug.user_1, ug.user_2, ug.user_3])) ar(user_id) join
users u
on u.user_id = u.id
) as users
from user_groups ug;
如果您确实需要JSON,则可以使用JSON函数。