我想将子选择的结果作为JSON加入,但是我很难搞清楚如何使用。
我有以下查询:
select books.* from libraries inner join books on libraries.id = books.id
我还希望将另一个表中的结果作为JSON加入。
为此,我想使用像
这样的东西select row_to_json(page) from (select * from pages) page
我想获得每行包含book列的结果,库列和页面表示为JSON列。关于如何实现这一点的任何想法?
谢谢!
答案 0 :(得分:0)
假设您希望将页面ID作为jsonb对象的数组。我认为将页面ID聚合为数组可能是一个不错的选择。
SELECT
libraries.id,
books.id,
JSONB_AGG
(
JSON_BUILD_OBJECT
(
'id', pages.id
)
) AS page
FROM libraries
INNER JOIN books ON books.id = libraries.id -- books.id really matches libraries.id?
INNER JOIN pages ON pages.book_id = books.id
GROUP BY
libraries.id,
books.id;