Czasami się zdarza, że musisz przekształcić podzapytania na ciąg znaków, który jest rozdzielany przecinakami. Na przykład, może trzeba napisać krótki raport zawierający imiona i nazwiska użytkowników, ich identyfikatora logowania i wszystkie role. W tym przypadku, nie mogą być trzy tabele do odniesienia: users, role i user_role_xref. Aby wyświetlić żądane dane dla wszystkich włączonych użytkowników, można użyć następującej kwerendy w PostgreSQL:
SELECT
users.user_id,
users.full_name,
array_to_string(array(
SELECT
roles.title
FROM
user_role_xref, roles
WHERE
user_role_xref.user_id = users.id
AND
user_role_xref.role_id = roles.id
),
', '
)
AS
roles
FROM
users
WHERE
users.enabled =
TRUE
;