【发布时间】:2022-11-15 05:30:30
【问题描述】:
我必须从 user_profile 表中加入 user_name,作为 first_name 和 last_names。 uptil 这里一切都很好,当我尝试从 user_role 表中获取分配的各个角色时,它会为单个用户提供多行,因为 1 个用户可以拥有多个角色。
在尝试在 role.names 上应用 string_agg [以便多个角色在单个元组中以逗号分隔] 时,它将每个角色放在单独的行中。
这是我试图在 postgresql 中运行的示例查询
SELECT users.user_name, user_profiles.first_name, user_profiles.last_name,
(SELECT string_agg (roles.name, ',') from roles where roles.id in (select user_roles.role_id where users.id = user_roles.user_id)) as name
FROM users JOIN user_profiles ON users.id = user_profiles.user_id
JOIN user_roles
ON user_roles.user_id = users.id
【问题讨论】:
标签: postgresql join string-agg