Как мне создать JSON (B) из этого оператора:
SELECT *
FROM foo
LEFT JOIN bar
USING (id)
Мое решение в настоящее время выглядит так:
SELECT to_jsonb(foo) || coalesce(to_jsonb(bar), '{}')
FROM foo
LEFT JOIN bar
USING (id)
Это становится уродливее для каждой объединенной таблицы, например:
SELECT to_jsonb(foo) || coalesce(to_jsonb(bar), '{}') || coalesce(to_jsonb(baz), '{}')
FROM foo
LEFT JOIN bar
USING (id)
LEFT JOIN baz
USING (id)
Я бы хотел что-то вроде этого:
SELECT to_jsonb(*)
FROM foo
LEFT JOIN bar
USING (id)
Но это дает мне:
[42883] ОШИБКА: функция to_jsonb () делаетне существует