2017-11-30 2 views
0

하위 선택의 결과를 JSON으로 참여시키고 싶습니다. 그러나 방법을 찾는 데 어려움이 있습니다. 나는 또한 JSON과 같은 다른 테이블에서 결과에 가입하고 싶습니다테이블을 Postgres의 배열로 결합하십시오.

select books.* from libraries inner join books on libraries.id = books.id 

:

나는 다음과 같은 쿼리를 가지고있다. 나는 각 행은 책 열이 결과를 달성하고 싶습니다

select row_to_json(page) from (select * from pages) page 

같은 것을 사용하고 싶습니다이 들어

는 라이브러리 열 및 페이지는 JSON 열로 표시됩니다. 이것을 달성하는 방법에 대한 아이디어가 있습니까?

감사합니다.

+0

'도서'는 '페이지'와 어떤 관련이 있습니까? –

+0

각 도서 행에는 page_id가 있고 각 page_id에는 도서 행이 있습니다. – n83

답변

0

jsonb 객체의 배열로 페이지 ID를 사용한다고 가정합니다. 페이지 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; 
관련 문제