I have 3 different PostgreSQL queries, getUsers, getCompanies, getEvents for my homepage. I want to create a single query for this.
My 3 simplified queries:
getUsers = SELECT * FROM users;
getCompanies = SELECT * FROM companies;
getEvents = SELECT * FROM events;
I want to get an array of objects with this query. What I tried so far:
SELECT
coalesce(json_agg(users), '[]'::json) as users,
coalesce(json_agg(companies), '[]'::json) as companies,
coalesce(json_agg(events), '[]'::json) as events
FROM
(
SELECT
*
FROM
users
) AS users,
(
SELECT
*
FROM
companies
) AS companies,
(
SELECT
*
FROM
events
) AS events;
For a single query this works fine:
SELECT
coalesce(json_agg(companies), '[]'::json) as companies
FROM
(SELECT
*
FROM
companies
) as companies
Output is for this single query:
companies [
{
name: 'test company',
url: 'https://www.example.com/test-company',
},
{
name: 'test agency',
url: 'https://www.example.com/test-agency',
}
]
RESULT should be:
users: [{...},{...}],
companies: [{...},{...}],
events: [{...},{...}]